ClientNotifForwarder wait infinitly

View: New views
1 Messages — Rating Filter:   Alert me  

ClientNotifForwarder wait infinitly

by DARVEAU Manuel :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.

Hi everyone,

 

Has anybody ever seen ClientNotifForwarder wait infinitly?

I have a case where a thread wait infinitly while holding a lock on an object and that makes other thread blocked and eventually creating a thread leak on my system.

 

Name: Thread-142568

State: WAITING on javax.management.remote.rmi.RMIConnector$RMINotifClient@14ba7fe

Total blocked: 0  Total waited: 1

Stack trace:

    java.lang.Object.wait(Native Method)

    java.lang.Object.wait(Object.java:474)

    com.sun.jmx.remote.internal.ClientNotifForwarder.beforeRemove(ClientNotifForwarder.java:745)

    com.sun.jmx.remote.internal.ClientNotifForwarder.removeNotificationListener(ClientNotifForwarder.java:167)

    javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.removeNotificationListener(RMIConnector.java:1204)

    com.miranda.commons.management.JmxContext.removeNotificationListener(JmxContext.java:177)

    com.miranda.commons.management.JmxConnectionManager.removeNotificationListener(JmxConnectionManager.java:177)

    com.miranda.adapters.agent.router.RouterClientJMX$2.run(RouterClientJMX.java:222)

 

I have two other suspicious threads:

Name: ClientNotifForwarder-297

State: WAITING on [I@1180ab3

Total blocked: 67  Total waited: 1

Stack trace:

    java.lang.Object.wait(Native Method)

    java.lang.Object.wait(Object.java:474)

    com.sun.jmx.remote.internal.ClientCommunicatorAdmin.restart(ClientCommunicatorAdmin.java:82)

    com.sun.jmx.remote.internal.ClientCommunicatorAdmin.gotIOException(ClientCommunicatorAdmin.java:34)

    javax.management.remote.rmi.RMIConnector$RMIClientCommunicatorAdmin.gotIOException(RMIConnector.java:1413)

    javax.management.remote.rmi.RMIConnector$RMINotifClient.fetchNotifs(RMIConnector.java:1293)

    com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.fetchNotifs(ClientNotifForwarder.java:508)

    com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.run(ClientNotifForwarder.java:399)

    com.sun.jmx.remote.internal.ClientNotifForwarder$LinearExecutor$1.run(ClientNotifForwarder.java:83)

 

Looking at the code, I see that ClientNotifForwarder.postReconnection should do beingReconnected = false; notifyAll(); but it is stalled waiting:

Name: Thread-34

State: WAITING on javax.management.remote.rmi.RMIConnector$RMINotifClient@14ba7fe

Total blocked: 130  Total waited: 2

Stack trace:

    java.lang.Object.wait(Native Method)

    java.lang.Object.wait(Object.java:474)

    com.sun.jmx.remote.internal.ClientNotifForwarder.postReconnection(ClientNotifForwarder.java:314)

    javax.management.remote.rmi.RMIConnector$RMIClientCommunicatorAdmin.reconnectNotificationListeners(RMIConnector.java:1512)

    javax.management.remote.rmi.RMIConnector$RMIClientCommunicatorAdmin.doStart(RMIConnector.java:1577)

    com.sun.jmx.remote.internal.ClientCommunicatorAdmin.restart(ClientCommunicatorAdmin.java:106)

    com.sun.jmx.remote.internal.ClientCommunicatorAdmin.access$500(ClientCommunicatorAdmin.java:16)

    com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:178)

    java.lang.Thread.run(Thread.java:595)

 

My guess is that the state was changed to TERMINATED but the method setState does not call notifyAll when the state is changed to TERMINATED.

I tried to unplug and plug the network cable to force a state change but it does not seem to change anything…

 

Should I report a bug? I made a search on the database and found bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6199899 but it was closed and the situation described is “impossible”.

 

Anyone has an idea?

 

Thank you very much!

 

Manuel Darveau

 

P.S.: I have a report of the state and stack trace for every threads in my application so if you would like to take a look at it, I can send it in private.

P.P.S.: Anyone know if it is possible to make contrib to jconsole?

=========================================================================== For information on the Java Management extensions (JMX), please visit our home page at http://java.sun.com/products/JavaManagement/ The JMX-FORUM archives are accessible at http://archives.java.sun.com To unsubscribe, send email to listserv@... and include in the body of the message "signoff JMX-FORUM". For general help, send email to listserv@... and include in the body of the message "help".