-
Bug
-
Resolution: Cannot Reproduce
-
Minor
-
7.1.0.Final
-
None
-
Compatibility/Configuration
-
Workaround Exists
-
Page-size should be ignored on blocking. If the pageSize is configured beyond or the same as max-size, the constructor will throw an exception what could cause collateral damage since some state will be left unfilled.
The user has initially described this issue.
I have journal-file-size set to 10 Mb and max-size-bytes set 10 Mb, with a address policy of BLOCK. When my sendMailQueue reaches its limit a deadlock occurs. This is further emphasized in the JBossAS Forum reference.
Here's a snippet from jstack after HornetQ crashes.
Found one Java-level deadlock: ============================= "Thread-878 (HornetQ-client-global-threads-1151364488)": waiting to lock monitor 0x0000000041df8640 (object 0x00000000ea17d6e0, a java.lang.Object), which is held by "Thread-873 (HornetQ-client-global-threads-1151364488)" "Thread-873 (HornetQ-client-global-threads-1151364488)": waiting to lock monitor 0x000000004107c8b8 (object 0x00000000ea17d6d0, a java.lang.Object), which is held by "Thread-878 (HornetQ-client-global-threads-1151364488)" Java stack information for the threads listed above: =================================================== "Thread-878 (HornetQ-client-global-threads-1151364488)": at org.hornetq.core.client.impl.ClientSessionFactoryImpl.close(ClientSessionFactoryImpl.java:461) - waiting to lock <0x00000000ea17d6e0> (a java.lang.Object) - locked <0x00000000ea17d6d0> (a java.lang.Object) at org.hornetq.core.client.impl.ServerLocatorImpl.doClose(ServerLocatorImpl.java:1294) at org.hornetq.core.client.impl.ServerLocatorImpl.close(ServerLocatorImpl.java:1238) at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.close(HornetQXAResourceWrapper.java:392) at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.connectionFailed(HornetQXAResourceWrapper.java:232) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.callFailureListeners(ClientSessionFactoryImpl.java:905) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:690) - locked <0x00000000f0222060> (a java.lang.Object) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:556) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.access$000(ClientSessionFactoryImpl.java:79) at org.hornetq.core.client.impl.ClientSessionFactoryImpl$1.run(ClientSessionFactoryImpl.java:386) at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) "Thread-873 (HornetQ-client-global-threads-1151364488)": at org.hornetq.core.client.impl.ClientSessionFactoryImpl.close(ClientSessionFactoryImpl.java:458) - waiting to lock <0x00000000ea17d6d0> (a java.lang.Object) at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.close(HornetQXAResourceWrapper.java:391) at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.connectionFailed(HornetQXAResourceWrapper.java:232) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.callFailureListeners(ClientSessionFactoryImpl.java:905) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:690) - locked <0x00000000ea17d6e0> (a java.lang.Object) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:556) at org.hornetq.core.client.impl.ClientSessionFactoryImpl.access$000(ClientSessionFactoryImpl.java:79) at org.hornetq.core.client.impl.ClientSessionFactoryImpl$1.run(ClientSessionFactoryImpl.java:386) at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Found 1 deadlock.