commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jon Cooper (JIRA)" <>
Subject [jira] [Commented] (POOL-340) borrowObject is stuck, if create fails
Date Wed, 25 Jul 2018 20:05:00 GMT


Jon Cooper commented on POOL-340:

[~garydgregory], I believe I have found one additional case that should be addressed when
resolving this issue:  if the pool is *closed* by another thread, then the threads currently
waiting for borrowObject() to return will remain stuck forever.  Unfortunately, none of the
workarounds provided by [~psteitz] will resolve this issue. 

> borrowObject is stuck, if create fails
> --------------------------------------
>                 Key: POOL-340
>                 URL:
>             Project: Commons Pool
>          Issue Type: Bug
>    Affects Versions: 2.4, 2.4.1, 2.4.2, 2.4.3, 2.5.0
>            Reporter: Pavel Kolesov
>            Priority: Critical
> After changes in 2.4.3 there is a high chance of a scenario, in which borrowObject waits
infinitely, if create fails or no one calls a create.
> {noformat}
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x0000000083cfd978> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.park(
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(
>         at org.apache.commons.pool2.impl.LinkedBlockingDeque.takeFirst(
>         at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(
>         at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(
> {noformat}
> If pool is exhausted, when borrowObject tries to get idle object, it waits for new object
to be created.
> If all objects are returned to pool invalid and destroyed, and it is impossible to create
a new one, borrowObject will not return.
> Even if afterwards it is becomes possible to crate a new object but no one creates it,
borrowObject will not return either.

This message was sent by Atlassian JIRA

View raw message