Bug 848938

Summary: JMX Plugin - Leaking connector threads - com.sun.jmx.remote.internal.ClientCommunicatorAdminClientCommunicatorAdmin$Checker.run
Product: [Other] RHQ Project Reporter: Elias Ross <genman>
Component: PluginsAssignee: RHQ Project Maintainer <rhq-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: high Docs Contact:
Priority: high    
Version: 4.4CC: hrupp, mazz
Target Milestone: ---   
Target Release: RHQ 4.5.0   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 871610 (view as bug list) Environment:
Last Closed: 2013-09-01 05:58:33 EDT Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 871610    
Description Flags
fixes connection leak patch
updated patch against master - 9f175839392 none

Description Elias Ross 2012-08-16 17:08:32 EDT
Description of problem:

Number of process threads increases over time.

One such example:

"Thread-2461" daemon prio=10 tid=0x000000006103c800 nid=0x5fc0 waiting on condition [0x00002aab178bb000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)
        at java.lang.Thread.run(Thread.java:619)

Version-Release number of selected component (if applicable):

RHQ 4.4 version of the plugin running.

How reproducible:

Unclear what specific conditions cause this in my case, but I have seen it almost universally. It could be to discovery failing.

There are obvious code paths which can likely lead to this condition worth exploring.

Additional info:

See: http://stackoverflow.com/questions/564589/dynamic-proxies-with-jmx-can-cause-thread-leaks
> When you do:
> JMXConnectorFactory.connect(url)
> Make sure to close it when you're done using it rather than leaving it up to garbage collection or it seems they can keep piling up...

There are two instances where close is never called:
1) Getting Java version
2) Getting Java PID

** patch forthcoming
Comment 1 Elias Ross 2012-09-13 18:01:15 EDT
Created attachment 612647 [details]
fixes connection leak patch
Comment 2 John Mazzitelli 2012-09-19 06:55:33 EDT
Tried applying the patch - it failed on current master (which is 6887631b) - please correct and re-attach to this BZ. Here's the error I get:

$ git am ~/Downloads/0001-Bug-848938-JMX-Plugin-Leaking-connector-thread.patch
Applying: Bug 848938 - JMX Plugin - Leaking connector thread
error: patch failed: modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/JMXDiscoveryComponent.java:335
error: modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/JMXDiscoveryComponent.java: patch does not apply
Patch failed at 0001 Bug 848938 - JMX Plugin - Leaking connector thread
Comment 3 Elias Ross 2012-09-19 12:01:58 EDT
Created attachment 614447 [details]
updated patch against master - 9f175839392
Comment 4 John Mazzitelli 2012-09-19 12:30:42 EDT
git commit to master: 26b37482f90fb01a6771c5c51471e2754dc3cdb4
Comment 5 Charles Crouch 2012-10-30 16:51:33 EDT
Set Target Release correctly.
Comment 6 Heiko W. Rupp 2013-09-01 05:58:33 EDT
Bulk closing of items that are on_qa and in old RHQ releases, which are out for a long time and where the issue has not been re-opened since.