getConnection hanging: Timed out waiting for a free available connection.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
BoneCP |
New
|
Undecided
|
Unassigned |
Bug Description
I am experiencing a similar issue with 0.8 release, JVM7.
ds.setLazyInit(
ds.setPartition
ds.setMinConnec
ds.setMaxConnec
ds.setAcquireIn
// Half of the MySQL default
ds.setMaxConnec
ds.setConnectio
ds.setCloseOpen
ds.setDetectUnc
Two threads are asking BoneCP for a new connection and at some point getConnection hangs:
17:04:02.839 [pool-2-thread-1] > Getting connection A
17:04:02.839 [pool-2-thread-2] > Getting connection B
17:04:02.979 [pool-2-thread-1] < Got connection A
17:04:03.260 [pool-2-thread-1] > Getting connection C
17:04:03.672 [pool-2-thread-2] < Got connection B
The C connection is never returned:
java.sql.
at com.jolbox.
at com.jolbox.
at com.jolbox.
at com.jolbox.
at com.jolbox.
Any ideas? Not clear if it's a locking issue of the BlockingQueue or the PoolWatcher thread stops supplying new connections.
Setting partion=2 resolves this but then I am not sure if I will experience this with 3 or more threads.
Setting minConnections to >1 also helps but then I am not sure if we don't hit this deadlock later on when those are exhausted.
-Alexey
Experiencing this issue with the following settings also
ds.setPartition Count(3) ; tionsPerPartiti on(3); tionsPerPartiti on(20); crement( 3);
ds.setMinConnec
ds.setMaxConnec
ds.setAcquireIn
When >3 threads ask for a new connection BoneCP gets into some kind of a deadlock.