Pool wait interrupted exception

1,171 views
Skip to first unread message

Enrico Scalavino

unread,
Feb 11, 2015, 11:33:34 AM2/11/15
to jd...@googlegroups.com
Hello everyone, 
I periodically see this exception in my logs:

java.lang.InterruptedException: null

! at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1039) ~[na:1.8.0_25]

! at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328) ~[na:1.8.0_25]

! at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:277) ~[na:1.8.0_25]

! at org.apache.tomcat.jdbc.pool.FairBlockingQueue.poll(FairBlockingQueue.java:151) ~[messages.jar:0.0.40]

! at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:650) ~[messages.jar:0.0.40]

! ... 19 common frames omitted

! Causing: java.sql.SQLException: Pool wait interrupted.

! at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:655) ~[messages.jar:0.0.40]

! at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188) ~[messages.jar:0.0.40]

! at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:128) ~[messages.jar:0.0.40]

! at org.skife.jdbi.v2.DataSourceConnectionFactory.openConnection(DataSourceConnectionFactory.java:35) ~[messages.jar:0.0.40]

! at org.skife.jdbi.v2.DBI.open(DBI.java:206) ~[messages.jar:0.0.40]

! ... 15 common frames omitted

! Causing: org.skife.jdbi.v2.exceptions.UnableToObtainConnectionException: java.sql.SQLException: Pool wait interrupted.

! at org.skife.jdbi.v2.DBI.open(DBI.java:224) ~[messages.jar:0.0.40]

! at org.skife.jdbi.v2.sqlobject.OnDemandHandleDing.getHandle(OnDemandHandleDing.java:37) ~[messages.jar:0.0.40]

! at org.skife.jdbi.v2.sqlobject.OnDemandHandleDing.retain(OnDemandHandleDing.java:44) ~[messages.jar:0.0.40]

! at org.skife.jdbi.v2.sqlobject.SqlObject.invoke(SqlObject.java:173) ~[messages.jar:0.0.40]

! at org.skife.jdbi.v2.sqlobject.SqlObject$1.intercept(SqlObject.java:75) ~[messages.jar:0.0.40]

! at org.skife.jdbi.v2.sqlobject.CloseInternalDoNotUseThisClass$$EnhancerByCGLIB$$7ab98ca7.getAll(<generated>) ~[messages.jar:0.0.40]

! at com.yammer.messages.service.db.thread.MessageThreadDbProvider$1.run(MessageThreadDbProvider.java:44) ~[messages.jar:0.0.40]

! at com.yammer.messages.service.db.thread.MessageThreadDbProvider$1.run(MessageThreadDbProvider.java:41) ~[messages.jar:0.0.40]

! at com.netflix.hystrix.HystrixCommand.executeCommand(HystrixCommand.java:1281) [messages.jar:0.0.40]

! at com.netflix.hystrix.HystrixCommand.access$2300(HystrixCommand.java:103) [messages.jar:0.0.40]

! at com.netflix.hystrix.HystrixCommand$5.call(HystrixCommand.java:1186) [messages.jar:0.0.40]

! at com.netflix.hystrix.strategy.concurrency.HystrixContextCallable.call(HystrixContextCallable.java:51) [messages.jar:0.0.40]

! at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25]

! at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25]

! at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25]

! at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25]

This happens around once a month, and the result is that the application stops working and returns errors to the clients. 
Does anyone know what this is about?

Steven Schlansker

unread,
Feb 11, 2015, 11:42:23 AM2/11/15
to jd...@googlegroups.com
It looks like something is calling the `Thread.interrupt()` method on the thread that is waiting to acquire a pooled connection.
Unfortunately, there is no way to know who is doing this -- but it's almost certainly not JDBI.

Given that you are running in an Executor, is it possible someone calls future.cancel() or executor.shutdown()? Both of these can lead to interrupts.
> --
> You received this message because you are subscribed to the Google Groups "jDBI" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to jdbi+uns...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages