Details
-
Type:
Bug
-
Status: Closed (View Workflow)
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.7.2
-
Fix Version/s: 2.7.6
-
Component/s: Other
-
Labels: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.