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