You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/10/17 12:24:14 UTC
[4/9] git commit: a few minor tidies for GC'ing tasks and alerting on
nginx reload/update failure
a few minor tidies for GC'ing tasks and alerting on nginx reload/update failure
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/48396f9b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/48396f9b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/48396f9b
Branch: refs/heads/master
Commit: 48396f9b88d0357c1526a03657c264e2c56171ba
Parents: 232ee46
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu Oct 16 16:23:07 2014 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Oct 16 17:44:39 2014 +0100
----------------------------------------------------------------------
.../management/internal/BrooklynGarbageCollector.java | 3 +++
.../management/internal/LocalEntityManager.java | 1 -
.../management/internal/EntityExecutionManagerTest.java | 5 +++--
.../brooklyn/entity/proxy/AbstractControllerImpl.java | 12 ++++++++++--
.../proxy/nginx/NginxRebindWithHaIntegrationTest.java | 4 ++--
5 files changed, 18 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/48396f9b/core/src/main/java/brooklyn/management/internal/BrooklynGarbageCollector.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/BrooklynGarbageCollector.java b/core/src/main/java/brooklyn/management/internal/BrooklynGarbageCollector.java
index fd83627..fdc734a 100644
--- a/core/src/main/java/brooklyn/management/internal/BrooklynGarbageCollector.java
+++ b/core/src/main/java/brooklyn/management/internal/BrooklynGarbageCollector.java
@@ -398,6 +398,9 @@ public class BrooklynGarbageCollector {
if (Entities.isManaged(ee.getKey())) continue;
if (ee.getValue()!=null && !ee.getValue().isDone()) continue;
deleteTasksForEntity(ee.getKey());
+ synchronized (unmanagedEntitiesNeedingGc) {
+ unmanagedEntitiesNeedingGc.remove(ee.getKey());
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/48396f9b/core/src/main/java/brooklyn/management/internal/LocalEntityManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/LocalEntityManager.java b/core/src/main/java/brooklyn/management/internal/LocalEntityManager.java
index 697f875..8aeb8ac 100644
--- a/core/src/main/java/brooklyn/management/internal/LocalEntityManager.java
+++ b/core/src/main/java/brooklyn/management/internal/LocalEntityManager.java
@@ -422,7 +422,6 @@ public class LocalEntityManager implements EntityManagerInternal {
}
} catch (Exception e) {
Exceptions.propagateIfFatal(e);
- e.printStackTrace();
log.warn("Error inspecting tasks to cancel on unmanagement: "+e, e);
}
if (!exceptions.isEmpty())
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/48396f9b/core/src/test/java/brooklyn/management/internal/EntityExecutionManagerTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/management/internal/EntityExecutionManagerTest.java b/core/src/test/java/brooklyn/management/internal/EntityExecutionManagerTest.java
index cfd9a59..a3aa70c 100644
--- a/core/src/test/java/brooklyn/management/internal/EntityExecutionManagerTest.java
+++ b/core/src/test/java/brooklyn/management/internal/EntityExecutionManagerTest.java
@@ -267,6 +267,7 @@ public class EntityExecutionManagerTest {
assertTrue(tags.contains(BrooklynTaskTags.tagForContextEntity(e)), "tags="+tags);
Entities.destroy(e);
+ forceGc();
Set<Object> tags2 = app.getManagementContext().getExecutionManager().getTaskTags();
for (Object tag : tags2) {
@@ -336,8 +337,8 @@ public class EntityExecutionManagerTest {
BasicAttributeSensor<Object> byteArrayAttrib = new BasicAttributeSensor<Object>(Object.class, "test.byteArray", "");
- for (int i = 0; i < 1000; i++) {
- if (i%100==0) LOG.info(JavaClassNames.niceClassAndMethod()+": iteration "+i);
+ for (int i = 0; i < 200; i++) {
+ if (i<10 || i%10==0) LOG.info(JavaClassNames.niceClassAndMethod()+": iteration "+i);
try {
LOG.debug(JavaClassNames.niceClassAndMethod()+": iteration="+i);
TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/48396f9b/software/webapp/src/main/java/brooklyn/entity/proxy/AbstractControllerImpl.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/brooklyn/entity/proxy/AbstractControllerImpl.java b/software/webapp/src/main/java/brooklyn/entity/proxy/AbstractControllerImpl.java
index 24044b0..76a6922 100644
--- a/software/webapp/src/main/java/brooklyn/entity/proxy/AbstractControllerImpl.java
+++ b/software/webapp/src/main/java/brooklyn/entity/proxy/AbstractControllerImpl.java
@@ -34,6 +34,7 @@ import brooklyn.entity.Group;
import brooklyn.entity.basic.Entities;
import brooklyn.entity.basic.EntityInternal;
import brooklyn.entity.basic.Lifecycle;
+import brooklyn.entity.basic.ServiceStateLogic;
import brooklyn.entity.basic.SoftwareProcessImpl;
import brooklyn.entity.group.AbstractMembershipTrackingPolicy;
import brooklyn.entity.group.Cluster;
@@ -45,6 +46,7 @@ import brooklyn.management.Task;
import brooklyn.policy.Policy;
import brooklyn.policy.PolicySpec;
import brooklyn.util.collections.MutableMap;
+import brooklyn.util.exceptions.Exceptions;
import brooklyn.util.guava.Maybe;
import brooklyn.util.task.Tasks;
@@ -359,8 +361,14 @@ public abstract class AbstractControllerImpl extends SoftwareProcessImpl impleme
@Override
public void update() {
- Task<?> task = updateAsync();
- if (task != null) task.getUnchecked();
+ try {
+ Task<?> task = updateAsync();
+ if (task != null) task.getUnchecked();
+ ServiceStateLogic.ServiceProblemsLogic.clearProblemsIndicator(this, "update");
+ } catch (Exception e) {
+ ServiceStateLogic.ServiceProblemsLogic.updateProblemsIndicator(this, "update", "update failed with: "+Exceptions.collapseText(e));
+ throw Exceptions.propagate(e);
+ }
}
public synchronized Task<?> updateAsync() {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/48396f9b/software/webapp/src/test/java/brooklyn/entity/proxy/nginx/NginxRebindWithHaIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/brooklyn/entity/proxy/nginx/NginxRebindWithHaIntegrationTest.java b/software/webapp/src/test/java/brooklyn/entity/proxy/nginx/NginxRebindWithHaIntegrationTest.java
index 560a2b2..a9508eb 100644
--- a/software/webapp/src/test/java/brooklyn/entity/proxy/nginx/NginxRebindWithHaIntegrationTest.java
+++ b/software/webapp/src/test/java/brooklyn/entity/proxy/nginx/NginxRebindWithHaIntegrationTest.java
@@ -42,7 +42,7 @@ import brooklyn.entity.group.DynamicCluster;
import brooklyn.entity.proxying.EntitySpec;
import brooklyn.entity.rebind.RebindTestFixtureWithApp;
import brooklyn.entity.rebind.RebindTestUtils;
-import brooklyn.entity.webapp.jboss.JBoss7Server;
+import brooklyn.entity.webapp.tomcat.TomcatServer;
import brooklyn.internal.BrooklynFeatureEnablement;
import brooklyn.location.LocationSpec;
import brooklyn.location.basic.LocalhostMachineProvisioningLocation;
@@ -119,7 +119,7 @@ public class NginxRebindWithHaIntegrationTest extends RebindTestFixtureWithApp {
@Test(groups = "Integration")
public void testChangeModeFailureStopsTasksButHappyUponResumption() throws Exception {
DynamicCluster origServerPool = origApp.createAndManageChild(EntitySpec.create(DynamicCluster.class)
- .configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(JBoss7Server.class).configure("war", warUrl.toString()))
+ .configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(TomcatServer.class).configure("war", warUrl.toString()))
.configure("initialSize", 1));
NginxController origNginx = origApp.createAndManageChild(EntitySpec.create(NginxController.class)