-
Bug
-
Resolution: Done
-
Major
-
7.1.4.GA
-
-
-
-
-
-
Workaround Exists
-
-
After createing connections by prefill, xa-datasource can have connection much more than max-pool-size.
Although prefill try to create connections based on `SemaphoreConcurrentLinkedDequeManagedConnectionPool.poolsize`, the poolsize count is broken after closing connections by test failure.
`SemaphoreConcurrentLinkedDequeManagedConnectionPool#removeConnectionListenerFromPool() is called 2 times per a connection during closing them, so that the poolsize can be decreased much more than existed connections.
When the poolsize is 25, it become -25 after closing all connections. And prefill try to create 50 connections until the poolsize count becomes 25 from -25.
`removeConnectionListenerFromPool()` is called as the following stacktrace during closing 1 connection.
1.
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.removeConnectionListenerFromPool(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:-1) org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.returnConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:736) org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.returnConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:611) org.jboss.jca.core.connectionmanager.pool.AbstractPool.returnConnection(AbstractPool.java:847) org.jboss.jca.core.connectionmanager.AbstractConnectionManager.returnManagedConnection(AbstractConnectionManager.java:725) org.jboss.jca.core.connectionmanager.listener.AbstractConnectionListener.connectionErrorOccurred(AbstractConnectionListener.java:472) org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.broadcastConnectionError(BaseWrapperManagedConnection.java:673) org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.broadcastConnectionError(XAManagedConnection.java:203) org.jboss.jca.adapters.jdbc.xa.XAManagedConnection$1.connectionErrorOccurred(XAManagedConnection.java:91) org.postgresql.ds.PGPooledConnection.fireConnectionFatalError(PGPooledConnection.java:183) org.postgresql.ds.PGPooledConnection.fireConnectionError(PGPooledConnection.java:237) org.postgresql.ds.PGPooledConnection.access$200(PGPooledConnection.java:38) org.postgresql.ds.PGPooledConnection$StatementHandler.invoke(PGPooledConnection.java:428) com.sun.proxy.$Proxy55.execute (Unknown Source) org.jboss.jca.adapters.jdbc.CheckValidConnectionSQL.isValidConnection(CheckValidConnectionSQL.java:74) org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnectionFactory.isValidConnection(BaseWrapperManagedConnectionFactory.java:1304) org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnectionFactory.getInvalidConnections(BaseWrapperManagedConnectionFactory.java:1086) org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:379) org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:632) org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:604) org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:624) org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:430) org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:789) org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:138) org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:64) ...
2.
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.removeConnectionListenerFromPool(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:-1) org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:452) org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:632) org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:604) org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:624) org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:430) org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:789) org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:138) org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:64) ...
- clones
-
JBJCA-1385 xa-datasource creates twice connections as much as max-pool-size
- Resolved
- is cloned by
-
JBEAP-15550 [GSS](7.1.z) JBJCA-1385 - EAP 7 / xa-datasource creates twice connections as much as max-pool-size
- Closed
- is incorporated by
-
JBEAP-15568 [GSS](7.2.z) Upgrade ironjacamar from 1.4.11 Final to 1.4.15 Final
- Closed
- links to