Uploaded image for project: 'Commons Pool'
  1. Commons Pool
  2. POOL-340

borrowObject is stuck, if create fails

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 2.4, 2.4.1, 2.4.2, 2.4.3, 2.5.0
    • Fix Version/s: 2.6.1
    • Labels:
      None

      Description

      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.

         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(LockSupport.java:175)
              at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
              at org.apache.commons.pool2.impl.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:583)
              at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:442)
              at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
      

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                struberg Mark Struberg
                Reporter:
                pavelk Pavel Kolesov
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: