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 49ab36d5138f2cc4637e2f50d4a05f70084c27ad
Author: Alex Heneveld <[email protected]>
AuthorDate: Tue Sep 14 13:52:05 2021 +0100

    better logging for HA promotion and for scheduled tasks
---
 .../brooklyn/core/mgmt/ha/HighAvailabilityManagerImpl.java    | 10 ++++++----
 .../apache/brooklyn/util/core/task/BasicExecutionManager.java | 11 ++++++++---
 2 files changed, 14 insertions(+), 7 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 fab4ffc..00f511a 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
@@ -567,7 +567,7 @@ public class HighAvailabilityManagerImpl implements 
HighAvailabilityManager {
         if (ManagementNodeState.isHotProxy(oldState) && 
!ManagementNodeState.isHotProxy(newState)) {
             // could perhaps promote standby items on some transitions; but 
for now we stop the old read-only and re-load them
             // TODO ideally there'd be an incremental rebind as well as an 
incremental persist
-            LOG.debug("Resetting rebind on hot->cold transition, from 
"+oldState+" to "+newState);
+            LOG.debug("Resetting rebind on transition from hot proxy 
("+oldState+") to "+newState);
             managementContext.getRebindManager().stopReadOnly();
             
clearManagedItems(ManagementTransitionMode.transitioning(BrooklynObjectManagementMode.LOADED_READ_ONLY,
 BrooklynObjectManagementMode.UNMANAGED_PERSISTED));
             managementContext.getRebindManager().reset();
@@ -781,7 +781,8 @@ public class HighAvailabilityManagerImpl implements 
HighAvailabilityManager {
             // if failed or hot backup then we can't promote ourselves, so no 
point in checking who is master
             return;
         }
-        
+
+        ManagementNodeState ourPrevState = getNodeState();
         updateLocalPlaneId(memento);
         
         String currMasterNodeId = memento.getMasterNodeId();
@@ -852,7 +853,8 @@ public class HighAvailabilityManagerImpl implements 
HighAvailabilityManager {
                 });
         }
         String message = "Management node "+ownNodeId+" detected ";
-        String currMasterSummary = currMasterNodeId + " (" + 
(currMasterNodeRecord==null ? "<none>" : 
timestampString(currMasterNodeRecord.getRemoteTimestamp())) + ")";
+        String currMasterSummary =
+                (Strings.isNonBlank(currMasterNodeId) ? currMasterNodeId+" " : 
"") + "(" + (currMasterNodeRecord==null ? "<none>" : 
timestampString(currMasterNodeRecord.getRemoteTimestamp())) + ")";
         if (weAreNewMaster && (ownNodeRecord.getStatus() == 
ManagementNodeState.MASTER)) {
             LOG.warn(message + "we must reassert master status, as we believe 
we should be master and other master "+
                 (currMasterNodeRecord==null ? "(a node which has gone away)" : 
currMasterSummary)+" has failed");
@@ -863,7 +865,7 @@ public class HighAvailabilityManagerImpl implements 
HighAvailabilityManager {
         
         if (!initializing) {
             if (weAreNewMaster) {
-                message += "we should be master, changing from ";
+                message += "we should be master, promoting from 
"+ourPrevState+"; master changing from ";
             }
             else if (currMasterNodeRecord==null && newMasterNodeId==null) 
message += "master change attempted but no candidates ";
             else message += "master change, from ";
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 995c49e..41a704e 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
@@ -172,9 +172,15 @@ public class BasicExecutionManager implements 
ExecutionManager {
                 entityMdc = MDC.putCloseable(LOGGING_MDC_KEY_ENTITY_IDS, "");
             }
 
+            logEvent("Starting task", task, entity);
+
+            return this;
+        }
+
+        public static void logEvent(String prefix, Task task, Entity entity) {
             if (BrooklynLoggingCategories.TASK_LIFECYCLE_LOG.isDebugEnabled() 
|| BrooklynLoggingCategories.TASK_LIFECYCLE_LOG.isTraceEnabled()) {
                 String taskName = task.getDisplayName();
-                String message = "Starting task " + task.getId() +
+                String message = prefix + " " + task.getId() +
                         (Strings.isNonBlank(taskName) ? " ("+taskName+")" : 
"") +
                         (entity == null ? "" : " on entity " + entity.getId()) 
+
                         (Strings.isNonBlank(task.getSubmittedByTaskId()) ? " 
from task " + task.getSubmittedByTaskId() : "") +
@@ -189,8 +195,6 @@ public class BasicExecutionManager implements 
ExecutionManager {
                         message);
 
             }
-
-            return this;
         }
 
         public void finish() {
@@ -557,6 +561,7 @@ public class BasicExecutionManager implements 
ExecutionManager {
     protected Task<?> submitNewScheduledTask(final Map<?,?> flags, final 
ScheduledTask task) {
         boolean result = false;
         try {
+            BrooklynTaskLoggingMdc.logEvent("Submitting scheduled task", task, 
BrooklynTaskTags.getTargetOrContextEntity(Tasks.current()));
             result = submitSubsequentScheduledTask(flags, task);
         } finally {
             if (!result) {

Reply via email to