Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
2.7.2
-
None
Description
Looks like it's possible to get stuck while acquiring lock, like this:
... waiting on condition [0x00007f03666a0000]
|
java.lang.Thread.State: WAITING (parking)
|
at sun.misc.Unsafe.park(Native Method)
|
- parking to wait for <0x0000000526660bf8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
|
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
|
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
|
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
|
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
|
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
|
at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:340)
|
at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:501)
|
at org.apache.tomcat.jdbc.pool.PooledConnection.validate(PooledConnection.java:583)
|
at org.apache.tomcat.jdbc.pool.PooledConnection.validate(PooledConnection.java:485)
|
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:832)
|
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:674)
|
at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:198)
|
at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:136)
|
at com.appiancorp.rdbms.datasource.BusinessDataSourceConnectionProvider.getConnection(BusinessDataSourceConnectionProvider.java:63)
|
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
|
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
|
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160)
|
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81)
|
The current theory is that during previous use of this connection, something went wrong which caused the connection to be returned to the pool without unlocking the lock.