Repository: ambari
Updated Branches:
  refs/heads/branch-2.2 7e6877a15 -> 91a5b3709
  refs/heads/trunk 0da68672a -> 7f8da72ff


AMBARI-15831. DB exception when trying to add 700 hosts to cluster. 
(mpapirkovskyy)


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

Branch: refs/heads/branch-2.2
Commit: 91a5b3709696b35f664e3cc987751ceead84e9e0
Parents: 7e6877a
Author: Myroslav Papirkovskyi <mpapyrkovs...@hortonworks.com>
Authored: Mon Apr 11 19:50:15 2016 +0300
Committer: Myroslav Papirkovskyi <mpapyrkovs...@hortonworks.com>
Committed: Tue Apr 12 15:07:13 2016 +0300

----------------------------------------------------------------------
 .../java/org/apache/ambari/server/agent/HeartbeatProcessor.java | 2 --
 .../main/java/org/apache/ambari/server/state/host/HostImpl.java | 5 ++++-
 .../java/org/apache/ambari/server/topology/TopologyManager.java | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/91a5b370/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java
index c55fb1c..46b08d2 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java
@@ -336,14 +336,12 @@ public class HeartbeatProcessor extends AbstractService{
         }
 
         host.setStatus(healthStatus.name());
-        host.persist();
       }
 
       //If host doesn't belong to any cluster
       if ((clusterFsm.getClustersForHost(host.getHostName())).size() == 0) {
         healthStatus = HostHealthStatus.HealthStatus.HEALTHY;
         host.setStatus(healthStatus.name());
-        host.persist();
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/91a5b370/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java 
b/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
index 2c8a8b6..01b0f16 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
@@ -255,7 +255,7 @@ public class HostImpl implements Host {
       hostEntity.setHostStateEntity(hostStateEntity);
       hostStateEntity.setHealthStatus(gson.toJson(new 
HostHealthStatus(HealthStatus.UNKNOWN, "")));
       if (persisted) {
-        persist();
+        hostStateDAO.create(hostStateEntity);
       }
     } else {
       stateMachine.setCurrentState(hostStateEntity.getCurrentState());
@@ -1209,6 +1209,9 @@ public class HostImpl implements Host {
         }
         persisted = true;
       } else {
+        //refresh entities from active session
+        getHostEntity();
+        getHostStateEntity();
         saveIfPersisted();
       }
     } finally {

http://git-wip-us.apache.org/repos/asf/ambari/blob/91a5b370/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
index c317162..5a0aca0 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
@@ -632,7 +632,7 @@ public class TopologyManager {
 
     if (null != rackInfoFromTemplate) {
       host.setRackInfo(rackInfoFromTemplate);
-      host.persist();
+      host.persist(); //todo this is required only if host is not persisted to 
database yet, is it really so?
       try {
         // todo: do we need this in case of blueprints?
         
ambariContext.getController().registerRackChange(ambariContext.getClusterName(topology.getClusterId()));

Reply via email to