jmx-dev RFR: 8038940 c.s.j.r.i.ClientNotifForwarder$LinearExecutor prone to data races

shanliang shanliang.jiang at oracle.com
Tue Apr 1 13:43:53 UTC 2014


Hi,

When ClientNotifForwarder starts, its first communication with 
ServerNotifForwarder is to get clientSequenceNumber, then starts 
LinearExecutor to execute the fetching job. If reconnection happens 
during this communication, a new thread will be started by the 
reconnection to do fetching job too, that's why the test got 
"java.lang.IllegalArgumentException: More than one command "

I have verified the class ClientNotifForwarder to make sure no other 
place would start a new job.

It is difficult to have a regression test to reproduce this bug, it is 
all related to an internal function. I had to add code temporally into 
the implementation to make the reconnection happen during this first 
communication, in order to reproduce the bug and to verify the fix.

webrev: http://cr.openjdk.java.net/~sjiang/JDK-8038940/00/
bug: https://bugs.openjdk.java.net/browse/JDK-8038940

Thanks,
Shanliang


More information about the jmx-dev mailing list