Skip to content
This repository has been archived by the owner on Sep 5, 2018. It is now read-only.

我在使用druid的时候,连接池产生了一个死锁,导致后续操作全部失败。 #1

Open
4your opened this issue Jun 28, 2017 · 0 comments

Comments

@4your
Copy link

4your commented Jun 28, 2017

下面是死锁发生是的jvm线程dump的死锁描述:
Java stack information for the threads listed above:

"pool-1-thread-1":
at oracle.jdbc.driver.OracleTimeoutThreadPerVM.cancelTimeout(OracleTimeoutThreadPerVM.java:120)
- waiting to lock <0x00000007974af528> (a oracle.jdbc.driver.OracleTimeoutThreadPerVM)
at oracle.jdbc.driver.OraclePreparedStatement.executeForRowsWithTimeout(OraclePreparedStatement.java:9206)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9315)
- locked <0x00000007974af948> (a oracle.jdbc.driver.T4CConnection)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:211)
at com.alibaba.druid.filter.FilterChainImpl.statement_executeBatch(FilterChainImpl.java:2596)
at com.alibaba.druid.filter.FilterAdapter.statement_executeBatch(FilterAdapter.java:2474)
at com.alibaba.druid.filter.FilterEventAdapter.statement_executeBatch(FilterEventAdapter.java:279)
at com.alibaba.druid.filter.FilterChainImpl.statement_executeBatch(FilterChainImpl.java:2594)
at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.executeBatch(StatementProxyImpl.java:192)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeBatch(DruidPooledPreparedStatement.java:559)
at gps.dao.impl.HfFcdGpsDaoImpl.InserterGpsInfo(HfFcdGpsDaoImpl.java:69)
at gps.service.impl.HfFcdGpsManagerImpl.positionReportDeal(HfFcdGpsManagerImpl.java:40)
at gps.task.HfFcdGpsRealTimeSaveTask$1.call(HfFcdGpsRealTimeSaveTask.java:63)
at gps.task.HfFcdGpsRealTimeSaveTask$1.call(HfFcdGpsRealTimeSaveTask.java:1)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
"OracleTimeoutPollingThread":
at oracle.jdbc.driver.PhysicalConnection.setUsable(PhysicalConnection.java:10001)
- waiting to lock <0x00000007974af948> (a oracle.jdbc.driver.T4CConnection)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:117)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:521)
at oracle.jdbc.driver.T4CConnection.cancelOperationOnServer(T4CConnection.java:807)
at oracle.jdbc.driver.OracleStatement.doCancel(OracleStatement.java:3011)
at oracle.jdbc.driver.OracleStatement.cancel(OracleStatement.java:2981)
at oracle.jdbc.driver.OracleTimeoutThreadPerVM.interruptIfAppropriate(OracleTimeoutThreadPerVM.java:174)
- locked <0x00000007974af528> (a oracle.jdbc.driver.OracleTimeoutThreadPerVM)
at oracle.jdbc.driver.OracleTimeoutPollingThread.pollOnce(OracleTimeoutPollingThread.java:204)
at oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:158)

Found 1 deadlock.

请问,这是一个bug吗。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant