This is an automated email from the ASF dual-hosted git repository. clebertsuconic pushed a commit to branch 2.27.x in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
commit f81134d748c9eb0427adbe578bfac74faae9f77f Author: Domenico Francesco Bruscino <[email protected]> AuthorDate: Fri Oct 7 09:09:07 2022 +0200 ARTEMIS-4030 Fix SharedStoreLiveActivation race condition DefaultCriticalErrorListener stops the server while SharedStoreLiveActivation is initializing it. (cherry picked from commit 3a5e4ce36300573525b96b101b69a0a287e1a8ea) --- .../core/server/impl/SharedStoreLiveActivation.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/SharedStoreLiveActivation.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/SharedStoreLiveActivation.java index b4e2f2ac73..635b6f317b 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/SharedStoreLiveActivation.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/SharedStoreLiveActivation.java @@ -85,16 +85,18 @@ public final class SharedStoreLiveActivation extends LiveActivation { nodeManagerActivateCallback = activeMQServer.getNodeManager().startLiveNode(); activeMQServer.registerActivateCallback(nodeManagerActivateCallback); - if (activeMQServer.getState() == ActiveMQServerImpl.SERVER_STATE.STOPPED + synchronized (activeMQServer) { + if (activeMQServer.getState() == ActiveMQServerImpl.SERVER_STATE.STOPPED || activeMQServer.getState() == ActiveMQServerImpl.SERVER_STATE.STOPPING) { - return; - } + return; + } - activeMQServer.initialisePart2(false); + activeMQServer.initialisePart2(false); - activeMQServer.completeActivation(false); + activeMQServer.completeActivation(false); - ActiveMQServerLogger.LOGGER.serverIsLive(); + ActiveMQServerLogger.LOGGER.serverIsLive(); + } } catch (NodeManagerException nodeManagerException) { if (nodeManagerException.getCause() instanceof ClosedChannelException) { // this is ok, we are being stopped
