You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Francois Orsini (JIRA)" <de...@db.apache.org> on 2006/09/09 11:10:23 UTC

[jira] Commented: (DERBY-1817) Race condition in network server's thread pool

    [ 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