Uploaded image for project: 'JBoss Messaging'
  1. JBoss Messaging
  2. JBMESSAGING-1591

ServerInvokerCallbackHandler is not cleaned up properly after a client faliure.

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Blocker
    • Resolution: Done
    • Affects Version/s: 1.4.0.SP3.CP07, 1.4.2.GA.SP1, 1.4.3.GA
    • Fix Version/s: 1.4.0.SP3.CP08, 1.4.4.GA
    • Component/s: None
    • Labels:
      None

      Description

      When a JMS client crashed, the server doesn't clean up the ServerInvokerCallbackHandler, resulting in leak.

      [quote from Ron, remoting team]

      Instances of org.jboss.remoting.callback.ServerInvokerCallbackHandler are leaking when the client doesn't close a JMS connection. When the Remoting Lease times out, JBossMessaging is notified, but not enough cleaning up is getting done. It looks like a couple of maps in Remoting plus a map in JMSServerInvocationHandler are holding references to instances of ServerInvokerCallbackHandler. I've created a ServerInvokerCallbackHandler.shutdown() method, and I think the only change necessary in JBossMessaging is for org.jboss.jms.server.endpoint.ServerConnectionEndpoint.closeCallbackClient() to call

      callbackHandler.shutdown();

      instead of

      callbackHandler.getCallbackClient().disconnect();

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  gaohoward Howard Gao
                  Reporter:
                  gaohoward Howard Gao
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: