glassfish
  1. glassfish
  2. GLASSFISH-7717

Wrong handling of RuntimeExceptions in JMS cluster

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: 9.1peur2
    • Fix Version/s: 4.0
    • Component/s: jms
    • Labels:
      None
    • Environment:

      Operating System: Linux
      Platform: All

    • Issuezilla Id:
      7,717
    • Status Whiteboard:
      Hide

      v3_exclude, v2.1.1_exclude

      Show
      v3_exclude, v2.1.1_exclude
    • Tags:

      Description

      I installed a v2.1 cluster with two nodes and set up a default jms
      ConnectionFactory and logical + physical queue.
      I composed a testcase with one MDB doing nothing but throwing a RuntimeException.
      The MDB was configured with "EndpointExceptionRedeliveryAttempts=5" and deployed
      to the cluster.
      A JavaSE Client uses JNDI to send 10000 transactional messages to the queue.
      The load gets distributed evenly between the two cluster instances. Instance one
      behaves as expected and retries 5 times before moving the messages to DMQ.
      Instance two instead seems to ignore EndpointExceptionRedeliveryAttempts and
      keeps trying to deliver the bad messages. Instance two loops forever using a lot
      of CPU. The Queue shows around 5000 "Not ACK" messages.

      The same testcase runs flawlessly in a non-clustered environment.

        Activity

        friedeks created issue -
        Hide
        Satish Kumar added a comment -

        This is a v2.1 issue not relevant for V3. Hence adding 'v3_exclude' in the
        status whiteboard.

        Show
        Satish Kumar added a comment - This is a v2.1 issue not relevant for V3. Hence adding 'v3_exclude' in the status whiteboard.
        Hide
        Ed Bratt added a comment -

        Will not fix in v2.1.1

        Show
        Ed Bratt added a comment - Will not fix in v2.1.1
        kenaiadmin made changes -
        Field Original Value New Value
        issue.field.bugzillaimportkey 7717 39321
        Ed Bratt made changes -
        Assignee Satish Kumar [ sats ] liang.x.zhao [ liang.x.zhao ]
        Hide
        Tom Mueller added a comment -

        Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

        Show
        Tom Mueller added a comment - Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.
        Tom Mueller made changes -
        Fix Version/s not determined [ 11149 ]
        Fix Version/s V3 [ 10981 ]
        David Zhao made changes -
        Fix Version/s 4.0 [ 10970 ]
        Fix Version/s not determined [ 11149 ]
        bqin made changes -
        Tags bj-reviewed
        Hide
        Simon Meng added a comment -

        I can't reproduce the described issue. The expected RuntimeException appeared. There is no infinite loop.

        But I found other issue in my testing. When sending a message from the standalone java client to queue, the MDB behaves as expected and retries 5 times, we can see 6 RuntimeExceptions. Then the message was moved to DMQ. It looks everything works fine at this point. But when I restart domain and server, the MDB throws 6 RuntimeExceptions again. The message also enters queue and marked as "UnAck". Each time I retart domain, the MDB still throws 6 RuntimeExceptions. It looks to me the behavior is not correct. The message has been moved to the DMQ, why it is delivered again and again when domain restart?

        Show
        Simon Meng added a comment - I can't reproduce the described issue. The expected RuntimeException appeared. There is no infinite loop. But I found other issue in my testing. When sending a message from the standalone java client to queue, the MDB behaves as expected and retries 5 times, we can see 6 RuntimeExceptions. Then the message was moved to DMQ. It looks everything works fine at this point. But when I restart domain and server, the MDB throws 6 RuntimeExceptions again. The message also enters queue and marked as "UnAck". Each time I retart domain, the MDB still throws 6 RuntimeExceptions. It looks to me the behavior is not correct. The message has been moved to the DMQ, why it is delivered again and again when domain restart?
        Hide
        Simon Meng added a comment - - edited

        The "other issue" that simeng_oracle noticed in his testing as mentioned in his above comment - that involves a transacted sender client and restart domain is a MQ bug MQ-227.

        Show
        Simon Meng added a comment - - edited The "other issue" that simeng_oracle noticed in his testing as mentioned in his above comment - that involves a transacted sender client and restart domain is a MQ bug MQ-227 .

          People

          • Assignee:
            David Zhao
            Reporter:
            friedeks
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated: