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 2021/09/14 21:56:28 UTC
[brooklyn-server] 09/27: tidy rebind,
skip duplicate hot-standby activation
This is an automated email from the ASF dual-hosted git repository.
heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit 37c331ea43f85e7958d9f03e8de3e3fc5e1b1743
Author: Alex Heneveld <al...@cloudsoftcorp.com>
AuthorDate: Mon Sep 13 23:17:08 2021 +0100
tidy rebind, skip duplicate hot-standby activation
---
.../brooklyn/core/mgmt/ha/HighAvailabilityManagerImpl.java | 12 ++++++++++--
.../brooklyn/util/core/task/BasicExecutionManager.java | 2 +-
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/HighAvailabilityManagerImpl.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/HighAvailabilityManagerImpl.java
index 2bd080d..fab4ffc 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/HighAvailabilityManagerImpl.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/HighAvailabilityManagerImpl.java
@@ -314,7 +314,8 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager {
// catch error in some tests where mgmt context has a different HA manager
if (managementContext.getHighAvailabilityManager()!=this)
throw new IllegalStateException("Cannot start an HA manager on a management context with a different HA manager!");
-
+
+ boolean newModeApplied = false;
if (weAreMasterLocally) {
// demotion may be required; do this before triggering an election
switch (startMode) {
@@ -326,13 +327,20 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager {
case HOT_STANDBY:
case HOT_BACKUP:
case STANDBY:
- demoteTo(ManagementNodeState.of(startMode).get()); break;
+ demoteTo(ManagementNodeState.of(startMode).get());
+ newModeApplied = true;
+ break;
default:
throw new IllegalStateException("Unexpected high availability mode "+startMode+" requested for "+this);
}
}
ManagementNodeState oldState = getInternalNodeState();
+ if (newModeApplied && Objects.equal(oldState, startMode)) {
+ // successfully applied new mode, as part of demoteTo call above;
+ // skip the duplicate logic below which re-applies it
+ return;
+ }
// now do election
switch (startMode) {
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
index 8b44490..793c5ca 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
@@ -390,7 +390,7 @@ public class BasicExecutionManager implements ExecutionManager {
if (context!=null && !Entities.isManaged(context)) {
log.debug("Forgetting about active task on unmanagement of "+context+": "+removed);
} else {
- log.warn("Deleting submitted task before completion: "+removed+"; this task will continue to run in the background outwith "+this+", but perhaps it should have been cancelled?");
+ log.warn("Deleting submitted task before completion: "+removed+" (tags "+removed.getTags()+"); this task will continue to run in the background outwith "+this+", but perhaps it should have been cancelled?");
}
}
task.getTags().forEach(t -> {