Thread Interrupt during borrowObject may lock pool
--------------------------------------------------
Key: POOL-168
URL: https://issues.apache.org/jira/browse/POOL-168
Project: Commons Pool
Issue Type: Bug
Affects Versions: 1.5.4
Environment: The pool is being used for a connection pool of SSH
connections on slax.
Reporter: YL
We're using the pool quite intensively, with many borrow and return calls. The
pool is set to WHEN_EXHAUSTED_BLOCK with a positive wait value (a few seconds).
Sometimes, the thread that is waiting on the "latch.wait(waitTime)" call (Line
1112 in GenericObjectPool of version 1.5.4) may be interrupted. When that
happens, the InterruptedException will be caught and rethrown correctly.
However, after this happens, the pool becomes useless and no borrowObject calls
succeed.
By looking at the code, it appears that some cleanup that is done in normal
operation (right before the NoSuchElementException timeout exception is thrown)
is not done in the case detailed above. It is possible that the cleanup should
be done in the case of interruption as well, to ensure the pool continues to
operate correctly.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.