Menu

#101 APPARENT DEADLOCK!!!

open
nobody
None
9
2014-07-29
2011-11-02
Sube
No

C3P0 Version:- c3p0-0.9.1.2
---------------------

[Timer-0] (ThreadPoolAsynchronousRunner.java:608) - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@180bf44 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
[Timer-0] (ThreadPoolAsynchronousRunner.java:624) - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@180bf44 -- APPARENT DEADLOCK!!! Complete Status:
Managed Threads: 3
Active Threads: 0
Active Tasks:
Pending Tasks:
com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask@787e7e
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@b8a136
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@15fe5b9
Pool thread stack traces:
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,]
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,]
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,]

Discussion

  • Sube

    Sube - 2011-11-02
    • priority: 5 --> 9
    • assigned_to: nobody --> swaldman
     
  • Sube

    Sube - 2011-11-02

    Database: MySQL

    C3P0 configuration:-
    ------------------------------

    <Resource auth="Container"
    driverClass="com.mysql.jdbc.Driver"
    maxPoolSize="50"
    minPoolSize="10"
    acquireIncrement="1"
    name="jdbc/DB"
    user="root"
    password=""
    factory="org.apache.naming.factory.BeanFactory"
    type="com.mchange.v2.c3p0.ComboPooledDataSource"
    maxIdleTime="2700"
    idleConnectionTestPeriod="600"
    maxIdleTimeExcessConnections="300"
    jdbcUrl="jdbc:mysql://localhost/abc?autoReconnect=true" />

     
  • Sube

    Sube - 2011-11-02

    I tried with following parameters also but does not work.

    acquireIncrement="5"
    numHelperThreads="50"
    maxAdministrativeTaskTime="1200"
    unreturnedConnectionTimeout="600"

    Still getting the apprent dead lock problem.

     
  • Siddeshwar Hiremath

    Hi subesingh1981,
    Your java application is unable to connect database. Please make sure you are able to connect database with proper credentials using jdbc driver. Then start your application.

    Try connecting to db using any other client from launch pad.

     
  • Sube

    Sube - 2011-11-03

    Hi,

    Application is able to make connection with MySQL database and fetch data from db. Problem come when application keep running for a week. Some time it come in two or three days.

    1) Is this problem resolved in latest version of C3P0 c3p0-0.9.2-pre1?

    c3p0-0.9.2-pre1.jar
    c3p0-oracle-thin-extras-0.9.2-pre1.jar
    mchange-commons-0.2.jar
    mysql-connector-java-5.1.16-bin.jar

    2) is "autoReconnect = false" will solve this problem?

    For example:- dbcUrl="jdbc:mysql://localhost/abdb?autoReconnect=false

    3) is attribute "useScatteredAcquireTask=true" is applicable only in latest version of C3P0 c3p0-0.9.2-pre1? Does it work in my case?

    Waiting for kind reply.

    Thanks,
    Sube

     
  • Sube

    Sube - 2011-11-04

    Any suggestion to solve this issue.

     
  • Steve Waldman

    Steve Waldman - 2011-11-04

    Please try c3p0-0.9.2-pre1.jar. There is no need to set "useScatteredAcquireTask=true" -- that is true by default in c3p0-0.9.2-pre1. If you want to stick with c3p0-0.9.1.2 you can try setting this parameter. It may help: you are deadlocking in Connection acquisition and destruction for the database.

    However, your underlying problem is that attempts to acquire and/or destroy Connections from your database are hanging for a long time, neither succeeding nor failing with an Exception. If they are only hanging for while, but not forever, the newer version / useScatteredAcquireTask may help. But if Connection acquisition/destruction attempts do hang indefinitely, eventually they will tie up all Threads in the Thread pool, provoking a deadlock. You need to figure out why c3p0 is unable to quickly acquire/destroy Connections under your configuration.

     
  • Sube

    Sube - 2011-11-15

    Hi Swaldman,

    As per your suggestion application testing going on latest C3P0 version c3p0-0.9.2-pre1. But one some server still we are facing same issue.

    My application has 5 or 6 large XML (around 10MB to 20MB) . Parsing and insertion of these xml files data in MySQL db take 15 to 20 minutes.

    Due to it application not able to quickly acquire/destroy db connections.

    Please suggest following configuration help in solving problem.

    <Resource auth="Container"
    driverClass="com.mysql.jdbc.Driver"
    maxPoolSize="50"
    minPoolSize="10"
    acquireIncrement="5"
    numHelperThreads="50"
    maxAdministrativeTaskTime="1200"
    name="jdbc/DB"
    user="root"
    password=""
    factory="org.apache.naming.factory.BeanFactory"
    type="com.mchange.v2.c3p0.ComboPooledDataSource"
    maxIdleTime="2700"
    idleConnectionTestPeriod="600"
    maxIdleTimeExcessConnections="300"
    debugUnreturnedConnectionStackTraces="false"
    unreturnedConnectionTimeout="1500"
    jdbcUrl="jdbc:mysql://localhost/apcdb?autoReconnect=true" />

    Waiting for kind reply.

    Thanks,
    Sube

     
  • Sube

    Sube - 2011-11-17

    Hi,

    Any update. Waiting for kind reply.

    Thanks,
    Sube

     
  • Sube

    Sube - 2013-05-03

    Still facing Apprent deadlock problem with C3P0 version: 0.9.2.1

    Database: MySQLDB 5.0

    2013-05-01 07:35:04,950 WARN [C3P0PooledConnectionPoolManager[identityToken->2rxa168uj3rqs1fdw6wc|d3c65d]-AdminTaskTimer] (ThreadPoolAsynchronousRunner.java:743) - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@867fbc -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
    2013-05-01 07:35:07,795 WARN [C3P0PooledConnectionPoolManager[identityToken->2rxa168uj3rqs1fdw6wc|d3c65d]-AdminTaskTimer] (ThreadPoolAsynchronousRunner.java:759) - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@867fbc -- APPARENT DEADLOCK!!! Complete Status:
    Managed Threads: 3
    Active Threads: 3
    Active Tasks:
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@b4f5a5
    on thread: C3P0PooledConnectionPoolManager[identityToken->2rxa168uj3rqs1fdw6wc|d3c65d]-HelperThread-#0
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@6b5d71
    on thread: C3P0PooledConnectionPoolManager[identityToken->2rxa168uj3rqs1fdw6wc|d3c65d]-HelperThread-#1
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@c3e37a
    on thread: C3P0PooledConnectionPoolManager[identityToken->2rxa168uj3rqs1fdw6wc|d3c65d]-HelperThread-#2
    Pending Tasks:
    com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@8b8802
    Pool thread stack traces:
    Thread[C3P0PooledConnectionPoolManager[identityToken->2rxa168uj3rqs1fdw6wc|d3c65d]-HelperThread-#0,5,main]
    java.net.SocketInputStream.socketRead0(Native Method)
    java.net.SocketInputStream.read(SocketInputStream.java:129)
    com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
    com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
    com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
    com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3049)
    com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3503)
    com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3492)
    com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4043)
    com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
    com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
    com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2809)
    com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2758)
    com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1612)
    com.mysql.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:4179)
    com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3582)
    com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2348)
    com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2306)
    com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
    com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:412)
    com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
    com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:195)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
    com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
    Thread[C3P0PooledConnectionPoolManager[identityToken->2rxa168uj3rqs1fdw6wc|d3c65d]-HelperThread-#1,5,main]
    java.net.SocketInputStream.socketRead0(Native Method)
    java.net.SocketInputStream.read(SocketInputStream.java:129)
    com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
    com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
    com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
    com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3049)
    com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3503)
    com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3492)
    com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4043)
    com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
    com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
    com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2809)
    com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2758)
    com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1612)
    com.mysql.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:4179)
    com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3582)
    com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2348)
    com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2306)
    com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
    com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:412)
    com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
    com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:195)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
    com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
    Thread[C3P0PooledConnectionPoolManager[identityToken->2rxa168uj3rqs1fdw6wc|d3c65d]-HelperThread-#2,5,main]
    java.net.SocketInputStream.socketRead0(Native Method)
    java.net.SocketInputStream.read(SocketInputStream.java:129)
    com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
    com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
    com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
    com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3049)
    com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3503)
    com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3492)
    com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4043)
    com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
    com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
    com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2809)
    com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2758)
    com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1612)
    com.mysql.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:4179)
    com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3582)
    com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2348)
    com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2306)
    com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
    com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:412)
    com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
    com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:195)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
    com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)

     
  • Sube

    Sube - 2013-05-03
    • assigned_to: swaldman --> nobody
     
  • Sunil  Bohra

    Sunil Bohra - 2013-08-08

    Hi,
    I'm getting similar APPARENT DEADLOCK in my application. I'm curious to know the possible reasons and fixes(if any).

    C3P0 version :- c3p0-0.9.1.2
    Hibernate version :- version 3.2.7
    Hibernate's c3p0 properties used :-
    hibernate.c3p0.min_size = 5
    hibernate.c3p0.max_size = 20
    hibernate.c3p0.idle_test_period = 10
    hibernate.c3p0.timeout = 100
    hibernate.c3p0.aquire_increment = 1

    The exception trace ....

    2013-08-03 08:23:27,644 WARN [Timer-10] (ThreadPoolAsynchronousRunner.java:608) - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@4e766d -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
    2013-08-03 08:23:27,651 WARN [Timer-10] (ThreadPoolAsynchronousRunner.java:624) - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@4e766d -- APPARENT DEADLOCK!!! Complete Status:
    Managed Threads: 3
    Active Threads: 3
    Active Tasks:
    com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask@95f44f (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
    com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask@da9f0c (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@fff12b (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
    Pending Tasks:
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1325c4f
    Pool thread stack traces:
    Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,[ORB=_it_orb_id_1,Pool=1]]
    java.net.SocketInputStream.socketRead0(Native Method)
    java.net.SocketInputStream.read(Unknown Source)
    oracle.net.ns.Packet.receive(Unknown Source)
    oracle.net.ns.DataPacket.receive(Unknown Source)
    oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
    oracle.net.ns.NetInputStream.read(Unknown Source)
    oracle.net.ns.NetInputStream.read(Unknown Source)
    oracle.net.ns.NetInputStream.read(Unknown Source)
    oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1099)
    oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1070)
    oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:106)
    oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:464)
    oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1175)
    com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:549)
    com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470)
    com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:964)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
    Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,[ORB=_it_orb_id_1,Pool=1]]
    java.net.SocketInputStream.socketRead0(Native Method)
    java.net.SocketInputStream.read(Unknown Source)
    oracle.net.ns.Packet.receive(Unknown Source)
    oracle.net.ns.DataPacket.receive(Unknown Source)
    oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
    oracle.net.ns.NetInputStream.read(Unknown Source)
    oracle.net.ns.NetInputStream.read(Unknown Source)
    oracle.net.ns.NetInputStream.read(Unknown Source)
    oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1099)
    oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1070)
    oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:106)
    oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:464)
    oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1175)
    com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:549)
    com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470)
    com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:964)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
    Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,[ORB=_it_orb_id_1,Pool=1]]
    java.net.SocketInputStream.socketRead0(Native Method)
    java.net.SocketInputStream.read(Unknown Source)
    oracle.net.ns.Packet.receive(Unknown Source)
    oracle.net.ns.DataPacket.receive(Unknown Source)
    oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
    oracle.net.ns.NetInputStream.read(Unknown Source)
    oracle.net.ns.NetInputStream.read(Unknown Source)
    oracle.net.ns.NetInputStream.read(Unknown Source)
    oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1099)
    oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1070)
    oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey(T4CTTIoauthenticate.java:266)
    oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:357)
    oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
    oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
    oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
    com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)</init></init>

     
  • Rural Hunter

    Rural Hunter - 2013-12-04

    I encounterred this problem too with 0.9.5-pre5. But I will provide some background here. The problem happens when there is network problem between the pool and the db server. I used commons-dbcp firstly. When there is network problem, dbcp reports pool error:
    org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object.
    The statistics of the pool is this: NumActive: 0, NumIdle: 0. The pool is configured with 30 max connections. There is absolutely no connection leak from the application. So those connections just disappeared or went out of the control of the pool somehow because of the network problem(I guess it's network hanging). So I switched to c3p0 but encounterred this "APPARENT DEADLOCK" error:
    WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@5fae696c -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pe
    nding tasks!
    WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@5fae696c -- APPARENT DEADLOCK!!! Complete Status:
    Managed Threads: 3
    Active Threads: 3
    Active Tasks:
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@4f68fccd
    on thread: C3P0PooledConnectionPoolManager[identityToken->u8rqptigyxqv4nwdgk|35549f94]-HelperThread-#0
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@75ad1f75
    on thread: C3P0PooledConnectionPoolManager[identityToken->u8rqptigyxqv4nwdgk|35549f94]-HelperThread-#1
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@38ec76ae
    on thread: C3P0PooledConnectionPoolManager[identityToken->u8rqptigyxqv4nwdgk|35549f94]-HelperThread-#2
    Pending Tasks:
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@2c63b6b4
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@466ffa30
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@61928970
    Pool thread stack traces:
    Thread[C3P0PooledConnectionPoolManager[identityToken->u8rqptigyxqv4nwdgk|35549f94]-HelperThread-#0,5,main]
    java.lang.Object.wait(Native Method)
    org.postgresql.Driver$ConnectThread.getResult(Driver.java:364)
    org.postgresql.Driver.connect(Driver.java:271)
    com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
    com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
    Thread[C3P0PooledConnectionPoolManager[identityToken->u8rqptigyxqv4nwdgk|35549f94]-HelperThread-#2,5,main]
    java.lang.Object.wait(Native Method)
    org.postgresql.Driver$ConnectThread.getResult(Driver.java:364)
    org.postgresql.Driver.connect(Driver.java:271)
    com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
    com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
    Thread[C3P0PooledConnectionPoolManager[identityToken->u8rqptigyxqv4nwdgk|35549f94]-HelperThread-#1,5,main]
    java.lang.Object.wait(Native Method)
    org.postgresql.Driver$ConnectThread.getResult(Driver.java:364)
    org.postgresql.Driver.connect(Driver.java:271)
    com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
    com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
    com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)

    Some threads dumping here:
    "PostgreSQL JDBC driver connection thread" daemon prio=10 tid=0x00007f95c8050000 nid=0x1e35 waiting for monitor entry [0x00007f9632ceb000]
    java.lang.Thread.State: BLOCKED (on object monitor)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:102)</init>

    • waiting to lock <0x000000076cb10380> (a java.lang.Class for org.postgresql.jdbc2.AbstractJdbc2Connection)
      at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
      at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
      at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:30)
      at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
      at org.postgresql.Driver.makeConnection(Driver.java:393)
      at org.postgresql.Driver.access$100(Driver.java:47)
      at org.postgresql.Driver$ConnectThread.run(Driver.java:308)
      at java.lang.Thread.run(Thread.java:679)</init></init></init></init>

    "PostgreSQL JDBC driver connection thread" daemon prio=10 tid=0x00007f95f4006000 nid=0x1e2a waiting for monitor entry [0x00007f9633af9000]
    java.lang.Thread.State: BLOCKED (on object monitor)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:102)</init>

    • waiting to lock <0x000000076cb10380> (a java.lang.Class for org.postgresql.jdbc2.AbstractJdbc2Connection)
      at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
      at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
      at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:30)
      at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
      at org.postgresql.Driver.makeConnection(Driver.java:393)
      at org.postgresql.Driver.access$100(Driver.java:47)
      at org.postgresql.Driver$ConnectThread.run(Driver.java:308)
      at java.lang.Thread.run(Thread.java:679)</init></init></init></init>

    "PostgreSQL JDBC driver connection thread" daemon prio=10 tid=0x00007f95ec001800 nid=0x1e29 waiting for monitor entry [0x00007f9631ddc000]
    java.lang.Thread.State: BLOCKED (on object monitor)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:102)</init>

    • waiting to lock <0x000000076cb10380> (a java.lang.Class for org.postgresql.jdbc2.AbstractJdbc2Connection)
      at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
      at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
      at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:30)
      at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
      at org.postgresql.Driver.makeConnection(Driver.java:393)
      at org.postgresql.Driver.access$100(Driver.java:47)
      at org.postgresql.Driver$ConnectThread.run(Driver.java:308)
      at java.lang.Thread.run(Thread.java:679)</init></init></init></init>
     

Log in to post a comment.

MongoDB Logo MongoDB