[ 
https://issues.apache.org/jira/browse/ARTEMIS-1527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16318493#comment-16318493
 ] 

ASF GitHub Bot commented on ARTEMIS-1527:
-----------------------------------------

Github user JiriOndrusek commented on a diff in the pull request:

    https://github.com/apache/activemq-artemis/pull/1761#discussion_r160420636
  
    --- Diff: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/RemotingConnectionImpl.java
 ---
    @@ -205,14 +211,59 @@ public void fail(final ActiveMQException me, String 
scaleDownTargetNodeID) {
           }
     
           // Then call the listeners
    -      callFailureListeners(me, scaleDownTargetNodeID);
    +      List<CountDownLatch> failureLatches = callFailureListeners(me, 
scaleDownTargetNodeID);
     
           callClosingListeners();
     
    -      internalClose();
    +      CountDownLatch latch = new CountDownLatch(1);
     
    -      for (Channel channel : channels.values()) {
    -         channel.returnBlocking(me);
    +      new ScheduledInternalClose(failureLatches, me, latch).run();
    +
    +      return latch;
    +   }
    +
    +   // internalClose has to be called after failureListeners are finished.
    +   private class ScheduledInternalClose implements Runnable {
    +
    +      private final List<CountDownLatch> failureLatches;
    +      private final ActiveMQException me;
    +      private final CountDownLatch latch;
    +
    +      public ScheduledInternalClose(List<CountDownLatch> failureLatches, 
final ActiveMQException me, CountDownLatch latch) {
    +         this.failureLatches = failureLatches;
    +         this.me = me;
    +         this.latch = latch;
    +      }
    +
    +      @Override
    +      public void run() {
    +         List<CountDownLatch> running = new LinkedList<>();
    +         failureLatches.forEach((l) -> {
    +            try {
    +               //interval is defined during scheduled execution
    +               if (!l.await(1, TimeUnit.MILLISECONDS)) {
    +                  running.add(l);
    +               }
    +            } catch (InterruptedException e) {
    +               ActiveMQClientLogger.LOGGER.warn(e.getMessage(), e);
    +            }
    +         });
    +
    +         if (!running.isEmpty()) {
    +            //TODO(jondruse) is there constant or propertyF usable for 
this kind of wait interval?
    +            scheduledExecutorService.schedule(new 
ScheduledInternalClose(running, me, latch), 500, TimeUnit.MILLISECONDS);
    --- End diff --
    
    I have too use "constant" for repetitive checking, whether action is 
already finished. May I use some generic timeout used in project (or define new 
attribute, ...)


> [Artemis Testsuite] ActiveMQMessageHandlerTest#testServerShutdownAndReconnect 
> fails
> -----------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-1527
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1527
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 1.5.5
>            Reporter: Jiri Ondrusek
>
> {code}
> java.lang.AssertionError: null
>       at org.junit.Assert.fail(Assert.java:86)
>       at org.junit.Assert.assertTrue(Assert.java:41)
>       at org.junit.Assert.assertTrue(Assert.java:52)
>       at 
> org.apache.activemq.artemis.tests.integration.ra.ActiveMQMessageHandlerTest.testServerShutdownAndReconnect(ActiveMQMessageHandlerTest.java:245)
> {code}
> Maximum size of clients global thread pool is computed as {{8 * 
> Runtime.getRuntime().availableProcessors()}}. In the case of CPU with one 
> core, the thread pool has maximum size 8.
> The test fails because of following situation. When the server is stopped, 
> all ClientSessionFactoryImpl try to reconnect and they add executor to the 
> thread pool which tries to reconnect ad anfinitum, see \[1\]. These threads 
> employ the whole thread pool and the rest is not able to work in normal way. 
> For example, I can see warnings \[2\].
> This situation is known as Starvation or Livelock \[3\]. I think that the 
> system should work properly even if the maximum size of thread pool will be 2.
> *Steps to reproduce:*
> Modify the test in the following way:
> {code}
> @Test
>    public void testServerShutdownAndReconnect() throws Exception {
>       ActiveMQClient.clearThreadPools();
>       ActiveMQClient.setGlobalThreadPoolProperties(2, 1);
>       ActiveMQResourceAdapter qResourceAdapter = newResourceAdapter();
>       ...
> {code}
> \[1\]
> {code}
> Thread[Signal Dispatcher,5,main]
>   com.ibm.misc.SignalDispatcher.waitForSignal(Native Method)
>   com.ibm.misc.SignalDispatcher.run(SignalDispatcher.java:73)
> Thread[Thread-4 
> (ActiveMQ-client-global-threads--90143455),5,ActiveMQ-client-global-threads--90143455]
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1048)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1339)
>   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:288)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.waitOnLatch(ActiveMQClientProtocolManager.java:134)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:829)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.reconnectSessions(ClientSessionFactoryImpl.java:753)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:615)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:513)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.access$400(ClientSessionFactoryImpl.java:70)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingFailureListener.connectionFailed(ClientSessionFactoryImpl.java:1191)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.callFailureListeners(AbstractRemotingConnection.java:64)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:210)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.fail(AbstractRemotingConnection.java:206)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$CloseRunnable.run(ClientSessionFactoryImpl.java:1014)
>   
> org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
>   
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
>   
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>   java.lang.Thread.run(Thread.java:785)
> Thread[Thread-5 
> (ActiveMQ-client-global-threads--90143455),5,ActiveMQ-client-global-threads--90143455]
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1048)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1339)
>   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:288)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.waitOnLatch(ActiveMQClientProtocolManager.java:134)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:829)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.reconnectSessions(ClientSessionFactoryImpl.java:753)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:615)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:513)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.access$400(ClientSessionFactoryImpl.java:70)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingFailureListener.connectionFailed(ClientSessionFactoryImpl.java:1191)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.callFailureListeners(AbstractRemotingConnection.java:64)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:210)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.fail(AbstractRemotingConnection.java:206)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$CloseRunnable.run(ClientSessionFactoryImpl.java:1014)
>   
> org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
>   
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
>   
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>   java.lang.Thread.run(Thread.java:785)
> Thread[JIT Compilation Thread-2 Suspended,10,system]
> Thread[JIT-SamplerThread,10,system]
> Thread[Attach API wait loop,10,main]
>   com.ibm.tools.attach.javaSE.IPC.waitSemaphore(Native Method)
>   
> com.ibm.tools.attach.javaSE.CommonDirectory.waitSemaphore(CommonDirectory.java:193)
>   
> com.ibm.tools.attach.javaSE.AttachHandler$WaitLoop.waitForNotification(AttachHandler.java:356)
>   
> com.ibm.tools.attach.javaSE.AttachHandler$WaitLoop.run(AttachHandler.java:444)
> Thread[main,5,main]
>   java.lang.Thread.getStackTraceImpl(Native Method)
>   java.lang.Thread.getStackTrace(Thread.java:1117)
>   java.lang.Thread.getAllStackTraces(Thread.java:1145)
>   
> org.apache.activemq.artemis.tests.integration.ra.ActiveMQMessageHandlerTest.testServerShutdownAndReconnect(ActiveMQMessageHandlerTest.java:250)
>   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
>   
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
>   java.lang.reflect.Method.invoke(Method.java:507)
>   
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
>   
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
>   
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>   org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>   org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
>   org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>   org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
>   org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
>   
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>   
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>   org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>   org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>   org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>   org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>   org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>   org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>   
> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:275)
>   
> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
>   
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:149)
>   
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
>   
> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
>   
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
>   org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
> Thread[Thread-2 
> (ActiveMQ-client-global-threads--90143455),5,ActiveMQ-client-global-threads--90143455]
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1048)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1339)
>   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:288)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.waitOnLatch(ActiveMQClientProtocolManager.java:134)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:829)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.reconnectSessions(ClientSessionFactoryImpl.java:753)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:615)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:513)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.access$400(ClientSessionFactoryImpl.java:70)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingFailureListener.connectionFailed(ClientSessionFactoryImpl.java:1191)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.callFailureListeners(AbstractRemotingConnection.java:64)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:210)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.fail(AbstractRemotingConnection.java:206)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$CloseRunnable.run(ClientSessionFactoryImpl.java:1014)
>   
> org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
>   
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
>   
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>   java.lang.Thread.run(Thread.java:785)
> Thread[Thread-1 
> (ActiveMQ-client-global-threads--90143455),5,ActiveMQ-client-global-threads--90143455]
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1048)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1339)
>   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:288)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.waitOnLatch(ActiveMQClientProtocolManager.java:134)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:829)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.reconnectSessions(ClientSessionFactoryImpl.java:753)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:615)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:513)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.access$400(ClientSessionFactoryImpl.java:70)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingFailureListener.connectionFailed(ClientSessionFactoryImpl.java:1191)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.callFailureListeners(AbstractRemotingConnection.java:64)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:210)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.fail(AbstractRemotingConnection.java:206)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$CloseRunnable.run(ClientSessionFactoryImpl.java:1014)
>   
> org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
>   
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
>   
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>   java.lang.Thread.run(Thread.java:785)
> Thread[JIT Diagnostic Compilation Thread-4 Suspended,10,system]
> Thread[Thread-6 
> (ActiveMQ-client-global-threads--90143455),5,ActiveMQ-client-global-threads--90143455]
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1048)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1339)
>   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:288)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.waitOnLatch(ActiveMQClientProtocolManager.java:134)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:829)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.reconnectSessions(ClientSessionFactoryImpl.java:753)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:615)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:513)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.access$400(ClientSessionFactoryImpl.java:70)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingFailureListener.connectionFailed(ClientSessionFactoryImpl.java:1191)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.callFailureListeners(AbstractRemotingConnection.java:64)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:210)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.fail(AbstractRemotingConnection.java:206)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$CloseRunnable.run(ClientSessionFactoryImpl.java:1014)
>   
> org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
>   
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
>   
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>   java.lang.Thread.run(Thread.java:785)
> Thread[Concurrent Mark Helper,1,system]
> Thread[JIT Compilation Thread-0,10,system]
> Thread[Thread-7 
> (ActiveMQ-client-global-threads--90143455),5,ActiveMQ-client-global-threads--90143455]
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1048)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1339)
>   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:288)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.waitOnLatch(ActiveMQClientProtocolManager.java:134)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:829)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.reconnectSessions(ClientSessionFactoryImpl.java:753)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:615)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:513)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.access$400(ClientSessionFactoryImpl.java:70)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingFailureListener.connectionFailed(ClientSessionFactoryImpl.java:1191)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.callFailureListeners(AbstractRemotingConnection.java:64)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:210)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.fail(AbstractRemotingConnection.java:206)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$CloseRunnable.run(ClientSessionFactoryImpl.java:1014)
>   
> org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
>   
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
>   
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>   java.lang.Thread.run(Thread.java:785)
> Thread[Finalizer thread,5,system]
> Thread[Thread-0 
> (ActiveMQ-client-global-threads--90143455),5,ActiveMQ-client-global-threads--90143455]
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1048)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1339)
>   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:288)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.waitOnLatch(ActiveMQClientProtocolManager.java:134)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:829)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.reconnectSessions(ClientSessionFactoryImpl.java:753)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:615)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:513)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.access$400(ClientSessionFactoryImpl.java:70)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingFailureListener.connectionFailed(ClientSessionFactoryImpl.java:1191)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.callFailureListeners(AbstractRemotingConnection.java:64)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:210)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.fail(AbstractRemotingConnection.java:206)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$CloseRunnable.run(ClientSessionFactoryImpl.java:1014)
>   
> org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
>   
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
>   
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>   java.lang.Thread.run(Thread.java:785)
> Thread[JIT Compilation Thread-1 Suspended,10,system]
> Thread[Thread-3 
> (ActiveMQ-client-global-threads--90143455),5,ActiveMQ-client-global-threads--90143455]
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1048)
>   
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1339)
>   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:288)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.waitOnLatch(ActiveMQClientProtocolManager.java:134)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:829)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.reconnectSessions(ClientSessionFactoryImpl.java:753)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:615)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:513)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.access$400(ClientSessionFactoryImpl.java:70)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingFailureListener.connectionFailed(ClientSessionFactoryImpl.java:1191)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.callFailureListeners(AbstractRemotingConnection.java:64)
>   
> org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:210)
>   
> org.apache.activemq.artemis.spi.core.protocol.AbstractRemotingConnection.fail(AbstractRemotingConnection.java:206)
>   
> org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$CloseRunnable.run(ClientSessionFactoryImpl.java:1014)
>   
> org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
>   
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
>   
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>   java.lang.Thread.run(Thread.java:785)
> Thread[JIT Compilation Thread-3 Suspended,10,system]
> Thread[IProfiler,5,system]
> {code}
> \[2\]
> {code}
> 09:22:51,968 WARN  [org.apache.activemq.artemis.core.server] AMQ222072: Timed 
> out flushing channel on InVMConnection
> {code}
> \[3\] 
> https://docs.oracle.com/javase/tutorial/essential/concurrency/starvelive.html



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to