8000 c3p0 continues attempting connections long after being closed · Issue #165 · swaldman/c3p0 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
c3p0 continues attempting connections long after being closed #165
Open
@hholierhoek

Description

@hholierhoek

c3p0 version is 0.9.5.5, Hibernate version is 5.5.8.Final.

In a scenario where Hibernate was initialized, then quite quickly it got shut down. The c3p0 pool seems to continue trying to create 3 connections though, and is logging the 'APPARENT DEADLOCK' thing periodically.

From thread dumps I can confirm there are no clients still trying to use Hibernate.

PostgreSQL is not accepting connections at this point. The PG connection URL has:

                connectTimeout = 30
                socketTimeout = 600
                tcpKeepAlive = true

Hibernate configuration for c3p0 is:

                hibernate.c3p0.min_size = 1
                hibernate.c3p0.max_size = 64
                hibernate.c3p0.timeout = 60
                hibernate.c3p0.maxStatementsPerConnection = 250
                hibernate.c3p0.testConnectionOnCheckout = true
                hibernate.c3p0.checkoutTimeout = 60000
                hibernate.c3p0.validationQuery = select 1

The 'deadlock' stack trace log:

com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@16b56fdd -- APPARENT DEADLOCK!!! Complete Status:
        Managed Threads: 3
        Active Threads: 3
        Active Tasks:
                com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@13ec640a
                        on thread: C3P0PooledConnectionPoolManager[identityToken->30zrwcas1h8bo5r1rgqng3|47c65313]-HelperThread-#0
                com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@752bd16d
                        on thread: C3P0PooledConnectionPoolManager[identityToken->30zrwcas1h8bo5r1rgqng3|47c65313]-HelperThread-#1
                com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@73ab5f9d
                        on thread: C3P0PooledConnectionPoolManager[identityToken->30zrwcas1h8bo5r1rgqng3|47c65313]-HelperThread-#2
        Pending Tasks:
                com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@4cb78b99
                com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@3c0b6a31
                com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@17806464
Pool thread stack traces:
        Thread[C3P0PooledConnectionPoolManager[identityToken->30zrwcas1h8bo5r1rgqng3|47c65313]-HelperThread-#0,5,main]
                java.net.PlainSocketImpl.socketConnect(Native Method)
                java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
                java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
                java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
                java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
                java.net.Socket.connect(Socket.java:607)
                org.postgresql.core.PGStream.<init>(PGStream.java:69)
                org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:152)
                org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
                org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
                org.postgresql.Driver.makeConnection(Driver.java:454)
                org.postgresql.Driver.connect(Driver.java:256)
                com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
                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:203)
                com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1176)
                com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1163)
                com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
                com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1908)
                com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
        Thread[C3P0PooledConnectionPoolManager[identityToken->30zrwcas1h8bo5r1rgqng3|47c65313]-HelperThread-#2,5,main]
                java.net.PlainSocketImpl.socketConnect(Native Method)
                java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
                java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
                java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
                java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
                java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
                java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
                java.net.Socket.connect(Socket.java:607)
                org.postgresql.core.PGStream.<init>(PGStream.java:69)
                org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:152)
                org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
                org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
                org.postgresql.Driver.makeConnection(Driver.java:454)
                org.postgresql.Driver.connect(Driver.java:256)
                com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
                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:203)
                com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1176)
                com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1163)
                com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
                com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1908)
                com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
        Thread[C3P0PooledConnectionPoolManager[identityToken->30zrwcas1h8bo5r1rgqng3|47c65313]-HelperThread-#1,5,main]
                java.net.PlainSocketImpl.socketConnect(Native Method)
                java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
                java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
                java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
                java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
                java.net.Socket.connect(Socket.java:607)
                org.postgresql.core.PGStream.<init>(PGStream.java:69)
                org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:152)
                org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
                org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
                org.postgresql.Driver.makeConnection(Driver.java:454)
                org.postgresql.Driver.connect(Driver.java:256)
                com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
                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:203)
                com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1176)
                com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1163)
                com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
                com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1908)
                com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0