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

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

@4your

Description

@4your

下面是死锁发生是的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吗。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions