Uploaded image for project: 'OpenDJ'
  1. OpenDJ
  2. OPENDJ-3963

JMXClientConnections are leaked

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.5.0, 4.0.0, 3.5.1, 3.5.0, 3.0.0, 2.6.4
    • Fix Version/s: 5.5.0
    • Component/s: core server
    • Support Ticket IDs:

      Description

      1. Run jconsole, connect "remotely" to DJ as a user with the correct privileges. Quit jconsole.
      2. Repeat that two more times.
      3. Take a heapdump.

      The heapdump shows that there are 3 instances of JmxClientConnection still in the heap. Using a debugger I can see that our When jconsole exits, our JmxClientConnection.handleNotification(Notification,Object) method is not called immediately. The RMI sockets close, and about 150s later our handleNotification method gets called to close the connection. I can see in a later heapdump that we still have JmxClientConnection objects in the heap with disconnectStarted=true.

      In the JmxClientConnection constructor we add the instance as a notificationlistener, but there's no corresponding call to remove the JmxClientConnection as a notificationlistener.

      The customer is able to demonstrate the server reporting an OOME after sufficient numbers of JMX connections are made.

        Attachments

        1. jmx_client.rb
          2 kB
        2. jmx_loop.sh
          0.1 kB
        3. jmxmap.sh
          0.4 kB

          Issue Links

            Activity

              People

              • Assignee:
                patrickdiligent patrick diligent
                Reporter:
                cjr Chris Ridd
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: