Repository: ambari Updated Branches: refs/heads/trunk 3d99b680c -> 84c3e7f06
AMBARI-16230. Sporadic errors when deploying the cluster (oleewere) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/84c3e7f0 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/84c3e7f0 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/84c3e7f0 Branch: refs/heads/trunk Commit: 84c3e7f06e1fb2e55d37f046ec584407c0b5c8eb Parents: 3d99b68 Author: oleewere <[email protected]> Authored: Wed May 11 11:48:06 2016 +0200 Committer: oleewere <[email protected]> Committed: Wed May 11 14:42:45 2016 +0200 ---------------------------------------------------------------------- .../controller/internal/ServiceResourceProvider.java | 1 - .../org/apache/ambari/server/state/ServiceImpl.java | 3 +++ .../ambari/server/state/cluster/ClusterImpl.java | 15 +++++---------- .../org/apache/ambari/server/events/EventsTest.java | 1 - .../org/apache/ambari/server/orm/OrmTestHelper.java | 2 -- .../server/state/alerts/AlertEventPublisherTest.java | 1 - .../server/state/alerts/InitialAlertEventTest.java | 1 - 7 files changed, 8 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/84c3e7f0/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java index 47342f3..56196c1 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java @@ -356,7 +356,6 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider s.setDesiredState(state); s.setDesiredStackVersion(cluster.getDesiredStackVersion()); s.persist(); - cluster.addService(s); // Initialize service widgets getManagementController().initializeWidgetsAndLayouts(cluster, s); } http://git-wip-us.apache.org/repos/asf/ambari/blob/84c3e7f0/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java index 487489b..c47bbbc 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java @@ -475,6 +475,7 @@ public class ServiceImpl implements Service { // publish the service installed event StackId stackId = cluster.getDesiredStackVersion(); + cluster.addService(this); ServiceInstalledEvent event = new ServiceInstalledEvent( getClusterId(), stackId.getStackName(), @@ -484,6 +485,8 @@ public class ServiceImpl implements Service { } else { saveIfPersisted(); } + } catch (AmbariException e) { + LOG.error("Adding service '{}' is failed before publishing service installed event.", getName(), e); } finally { readWriteLock.writeLock().unlock(); } http://git-wip-us.apache.org/repos/asf/ambari/blob/84c3e7f0/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java index f38c25a..cd0812b 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java @@ -172,7 +172,7 @@ public class ClusterImpl implements Cluster { private volatile boolean desiredStackVersionSet = true; - private volatile Map<String, Service> services = null; + private Map<String, Service> services = null; /** * [ Config Type -> [ Config Version Tag -> Config ] ] @@ -325,6 +325,8 @@ public class ClusterImpl implements Cluster { // Load any active stack upgrades. loadStackUpgrade(); + loadServices(); + // register to receive stuff eventPublisher.register(this); this.eventPublisher = eventPublisher; @@ -395,7 +397,6 @@ public class ClusterImpl implements Cluster { * We need this for live status checks. */ public void loadServiceHostComponents() { - loadServices(); if (svcHostsLoaded) { return; } @@ -967,7 +968,6 @@ public class ClusterImpl implements Cluster { @Override public void addService(Service service) throws AmbariException { - loadServices(); clusterGlobalLock.writeLock().lock(); try { if (LOG.isDebugEnabled()) { @@ -988,7 +988,6 @@ public class ClusterImpl implements Cluster { @Override public Service addService(String serviceName) throws AmbariException { - loadServices(); clusterGlobalLock.writeLock().lock(); try { if (LOG.isDebugEnabled()) { @@ -1010,7 +1009,6 @@ public class ClusterImpl implements Cluster { @Override public Service getService(String serviceName) throws AmbariException { - loadServices(); clusterGlobalLock.readLock().lock(); try { if (!services.containsKey(serviceName)) { @@ -1024,7 +1022,6 @@ public class ClusterImpl implements Cluster { @Override public Map<String, Service> getServices() { - loadServices(); clusterGlobalLock.readLock().lock(); try { return new HashMap<String, Service>(services); @@ -2129,7 +2126,6 @@ public class ClusterImpl implements Cluster { @Override public void debugDump(StringBuilder sb) { - loadServices(); loadStackVersion(); clusterGlobalLock.readLock().lock(); try { @@ -2168,7 +2164,6 @@ public class ClusterImpl implements Cluster { @Override @Transactional public void deleteAllServices() throws AmbariException { - loadServices(); clusterGlobalLock.writeLock().lock(); try { LOG.info("Deleting all services for cluster" + ", clusterName=" @@ -2194,7 +2189,6 @@ public class ClusterImpl implements Cluster { @Override public void deleteService(String serviceName) throws AmbariException { - loadServices(); clusterGlobalLock.writeLock().lock(); try { Service service = getService(serviceName); @@ -2243,7 +2237,6 @@ public class ClusterImpl implements Cluster { @Override public boolean canBeRemoved() { - loadServices(); clusterGlobalLock.readLock().lock(); try { boolean safeToRemove = true; @@ -3559,6 +3552,8 @@ public class ClusterImpl implements Cluster { refresh(); + loadServices(); + } finally { clusterGlobalLock.writeLock().unlock(); } http://git-wip-us.apache.org/repos/asf/ambari/blob/84c3e7f0/ambari-server/src/test/java/org/apache/ambari/server/events/EventsTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/events/EventsTest.java b/ambari-server/src/test/java/org/apache/ambari/server/events/EventsTest.java index a3d05a9..ce86f83 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/events/EventsTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/events/EventsTest.java @@ -382,7 +382,6 @@ public class EventsTest { private void installHdfsService() throws Exception { String serviceName = "HDFS"; Service service = m_serviceFactory.createNew(m_cluster, serviceName); - m_cluster.addService(service); service.persist(); service = m_cluster.getService(serviceName); Assert.assertNotNull(service); http://git-wip-us.apache.org/repos/asf/ambari/blob/84c3e7f0/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java index 19146fd..ea48703 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java @@ -415,7 +415,6 @@ public class OrmTestHelper { ServiceComponentHostFactory schFactory, String hostName) throws Exception { String serviceName = "HDFS"; Service service = serviceFactory.createNew(cluster, serviceName); - cluster.addService(service); service.persist(); service = cluster.getService(serviceName); assertNotNull(service); @@ -461,7 +460,6 @@ public class OrmTestHelper { ServiceComponentHostFactory schFactory, String hostName) throws Exception { String serviceName = "YARN"; Service service = serviceFactory.createNew(cluster, serviceName); - cluster.addService(service); service.persist(); service = cluster.getService(serviceName); assertNotNull(service); http://git-wip-us.apache.org/repos/asf/ambari/blob/84c3e7f0/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertEventPublisherTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertEventPublisherTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertEventPublisherTest.java index d1b27a9..76aa2e4 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertEventPublisherTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertEventPublisherTest.java @@ -304,7 +304,6 @@ public class AlertEventPublisherTest { private void installHdfsService() throws Exception { String serviceName = "HDFS"; Service service = serviceFactory.createNew(cluster, serviceName); - cluster.addService(service); service.persist(); service = cluster.getService(serviceName); http://git-wip-us.apache.org/repos/asf/ambari/blob/84c3e7f0/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/InitialAlertEventTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/InitialAlertEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/InitialAlertEventTest.java index 1875ba6..fc4803b 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/InitialAlertEventTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/alerts/InitialAlertEventTest.java @@ -175,7 +175,6 @@ public class InitialAlertEventTest { private void installHdfsService() throws Exception { String serviceName = "HDFS"; Service service = m_serviceFactory.createNew(m_cluster, serviceName); - m_cluster.addService(service); service.persist(); service = m_cluster.getService(serviceName);
