jmx-dev RFR: 8038940 c.s.j.r.i.ClientNotifForwarder$LinearExecutor prone to data races
Jaroslav Bachorik
jaroslav.bachorik at oracle.com
Tue Apr 1 13:54:18 UTC 2014
The patch looks good.
The notification processing is really a convoluted piece of code :/
-JB-
On 1.4.2014 15:43, shanliang wrote:
> 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