Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-3919

Invalid PageSize and blocking could lead to collateral issues

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Cannot Reproduce
    • Affects Version/s: 7.1.0.Final
    • Fix Version/s: 7.1.3.Final (EAP)
    • Component/s: JMS
    • Labels:
      None
    • Affects:
      Compatibility/Configuration
    • Workaround:
      Workaround Exists
    • Workaround Description:
      Hide

      Configure the pagesize < max-size as it's been defined on the user manual

      Show
      Configure the pagesize < max-size as it's been defined on the user manual

      Description

      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.
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              jmesnil Jeff Mesnil
              Reporter:
              oranheim Ove Ranheim (Inactive)
              Archiver:
              samahaja Sagar Mahajan

                Dates

                Created:
                Updated:
                Resolved:
                Archived: