RFR: 7056731: Race condition in CORBA code causes re-use of ABORTed connections

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