cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From prachida...@apache.org
Subject [63/68] [abbrv] git commit: updated refs/heads/planner_reserve to ed8ff40
Date Thu, 16 May 2013 18:22:28 GMT
CLOUDSTACK-2486: Deleting the host_details and inserting them back can lead to mysql deadlock

- Added the index found missing after upgrade

Contained in branches: master
Contained in no tag


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d31217f3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d31217f3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d31217f3

Branch: refs/heads/planner_reserve
Commit: d31217f3be2786951363e0859ef62d3c0b8c3643
Parents: a13dd59
Author: Prachi Damle <prachi@cloud.com>
Authored: Tue May 14 17:29:13 2013 -0700
Committer: Prachi Damle <prachi@cloud.com>
Committed: Wed May 15 11:16:43 2013 -0700

----------------------------------------------------------------------
 .../src/com/cloud/upgrade/dao/Upgrade410to420.java |   69 +++++++++++----
 1 files changed, 51 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d31217f3/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
index 1bd9abe..ff5e0fb 100644
--- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
@@ -73,9 +73,10 @@ public class Upgrade410to420 implements DbUpgrade {
         upgradeDefaultVpcOffering(conn);
         upgradePhysicalNtwksWithInternalLbProvider(conn);
         updateNetworkACLs(conn);
+        addHostDetailsIndex(conn);
     }
-	
-	private void updateSystemVmTemplates(Connection conn) {
+
+    private void updateSystemVmTemplates(Connection conn) {
 	    PreparedStatement sql = null;
         try {
             sql = conn.prepareStatement("update vm_template set image_data_store_id = 1 where
type = 'SYSTEM' or type = 'BUILTIN'");
@@ -91,7 +92,7 @@ public class Upgrade410to420 implements DbUpgrade {
             }
         }
 	}
-	
+
 	private void updatePrimaryStore(Connection conn) {
 	    PreparedStatement sql = null;
 	    PreparedStatement sql2 = null;
@@ -100,7 +101,7 @@ public class Upgrade410to420 implements DbUpgrade {
             sql.setString(1, "ancient primary data store provider");
             sql.setString(2, "HOST");
             sql.executeUpdate();
-            
+
             sql2 = conn.prepareStatement("update storage_pool set storage_provider_name =
? , scope = ? where pool_type != 'Filesystem' and pool_type != 'LVM'");
             sql2.setString(1, "ancient primary data store provider");
             sql2.setString(2, "CLUSTER");
@@ -114,7 +115,7 @@ public class Upgrade410to420 implements DbUpgrade {
                 } catch (SQLException e) {
                 }
             }
-            
+
             if (sql2 != null) {
                 try {
                     sql2.close();
@@ -242,7 +243,7 @@ public class Upgrade410to420 implements DbUpgrade {
             }
         }
     }
-    
+
     private void createPlaceHolderNics(Connection conn) {
         PreparedStatement pstmt = null;
         ResultSet rs = null;
@@ -263,7 +264,7 @@ public class Upgrade410to420 implements DbUpgrade {
                     pstmt.setLong(4, networkId);
                     pstmt.executeUpdate();
                     s_logger.debug("Created placeholder nic for the ipAddress " + ip);
-                
+
             }
         } catch (SQLException e) {
             throw new CloudRuntimeException("Unable to create placeholder nics", e);
@@ -279,8 +280,8 @@ public class Upgrade410to420 implements DbUpgrade {
             }
         }
     }
-    
-    
+
+
     private void updateRemoteAccessVpn(Connection conn) {
         PreparedStatement pstmt = null;
         ResultSet rs = null;
@@ -560,8 +561,8 @@ public class Upgrade410to420 implements DbUpgrade {
             }
         }
     }
-    
-    
+
+
     private void upgradeDefaultVpcOffering(Connection conn) {
 
         PreparedStatement pstmt = null;
@@ -579,7 +580,7 @@ public class Upgrade410to420 implements DbUpgrade {
                 pstmt.setString(3, "InternalLbVm");
                 pstmt.executeUpdate();
             }
-            
+
         } catch (SQLException e) {
             throw new CloudRuntimeException("Unable update the default VPC offering with
the internal lb service", e);
         } finally {
@@ -594,9 +595,9 @@ public class Upgrade410to420 implements DbUpgrade {
             }
         }
     }
-    
-    
-    
+
+
+
     private void upgradePhysicalNtwksWithInternalLbProvider(Connection conn) {
 
         PreparedStatement pstmt = null;
@@ -615,7 +616,7 @@ public class Upgrade410to420 implements DbUpgrade {
                 pstmt.setString(1, uuid);
                 pstmt.setLong(2, pNtwkId);
                 pstmt.executeUpdate();
-                
+
                 //Add internal lb vm to the list of physical network elements
                 PreparedStatement pstmt1 = conn.prepareStatement("SELECT id FROM `cloud`.`physical_network_service_providers`"
+
                 		" WHERE physical_network_id=? AND provider_name='InternalLbVm'");
@@ -629,7 +630,7 @@ public class Upgrade410to420 implements DbUpgrade {
                     pstmt1.executeUpdate();
                 }
             }
-            
+
         } catch (SQLException e) {
             throw new CloudRuntimeException("Unable existing physical networks with internal
lb provider", e);
         } finally {
@@ -643,6 +644,38 @@ public class Upgrade410to420 implements DbUpgrade {
             } catch (SQLException e) {
             }
         }
-        
+
+    }
+
+    private void addHostDetailsIndex(Connection conn) {
+        s_logger.debug("Checking if host_details index exists, if not we will add it");
+        PreparedStatement pstmt = null;
+        ResultSet rs = null;
+        try {
+            pstmt = conn.prepareStatement("SHOW INDEX FROM `cloud`.`host_details` where KEY_NAME
= 'fk_host_details__host_id'");
+            rs = pstmt.executeQuery();
+            if (rs.next()) {
+                s_logger.debug("Index already exists on host_details - not adding new one");
+            } else {
+                // add the index
+                PreparedStatement pstmtUpdate = conn.prepareStatement("ALTER IGNORE TABLE
`cloud`.`host_details` ADD INDEX `fk_host_details__host_id` (`host_id`)");
+                pstmtUpdate.executeUpdate();
+                s_logger.debug("Index did not exist on host_details -  added new one");
+                pstmtUpdate.close();
+            }
+        } catch (SQLException e) {
+            throw new CloudRuntimeException("Failed to check/update the host_details index
", e);
+        } finally {
+            try {
+                if (rs != null) {
+                    rs.close();
+                }
+
+                if (pstmt != null) {
+                    pstmt.close();
+                }
+            } catch (SQLException e) {
+            }
+        }
     }
 }


Mime
View raw message