[ http://issues.apache.org/jira/browse/DERBY-1817?page=comments#action_12433581 ] Francois Orsini commented on DERBY-1817: ----------------------------------------
Great changes Knut. My only comment thus far: - I think there is a tiny and potential race condition upon retrieving the maximum number of threads to create in the network server (via getMaxThreads()) and adding a newly created one on the thread list. Not sure if this is possible if there is some some higher-level lock but it seems like 'max' could be reset while holding the runQueue lock (as we're synchronizing on 2 different objects) - It seems like the number of maxThreads can be updated at runtime (see processCommands()) - just raising this issue for now - maybe something to investigate if you haven't done so already. Just from a quick review. Cheers. > Race condition in network server's thread pool > ---------------------------------------------- > > Key: DERBY-1817 > URL: http://issues.apache.org/jira/browse/DERBY-1817 > Project: Derby > Issue Type: Bug > Components: Network Server > Affects Versions: 10.2.1.0 > Reporter: Knut Anders Hatlen > Assigned To: Knut Anders Hatlen > Attachments: 1817.diff, 1817.stat > > > If there is a free DRDAConnThread when a client connects to the network > server, the session is put into a queue from which one of the free > DRDAConnThreads can pick it up. However, if another client connects after the > session was put into the queue, but before the DRDAConnThread has picked it > up, one might end up with more sessions in the queue than there are free > threads. This can lead to hangs like the ones that we currently see in many > of Ole's tests (for instance checkDataSource - > http://www.multinet.no/~solberg/public/Apache/TinderBox_Derby/testlog/SunOS-5.10_i86pc-i386/440518-derbyall_diff.txt). -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira