RFR: 7056731: Race condition in CORBA code causes re-use of ABORTed connections (original) (raw)

Seán Coffey sean.coffey at oracle.com
Tue Aug 14 16:38:25 UTC 2012


I'm looking to forward port this corba fix from 6u34 to jdk8 (and eventually port to 7u)

d.macdonald at auckland.ac.nz originally reported this issue and I'll be marking the fix as contributed by him. He's already signed the OCA. There's a good description in bug report. We have a race like condition if the corba server is shut down while there are still workers/client threads in a waiting queue waiting for server. The issue arises when the purgeCalls method marks a socket state as ABORTed or CLOSE_RECVD but fails to remove that socket from the socket connectionCache. Fix is to wrap the removal of the socket in a finally block.

The CorbaResponseWaitingRoomImpl changes are more focused on ensuring that the Map holding these clients is better synchronized.

webrev : http://cr.openjdk.java.net/~coffeys/webrev.7056731.jdk8/ <http://cr.openjdk.java.net/%7Ecoffeys/webrev.7056731.jdk8/> bug report : http://bugs.sun.com/view_bug.do?bug_id=7056731

Regards, Sean.



More information about the core-libs-dev mailing list