]
Galder Zamarreño updated ISPN-2033:
-----------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
JdbcBinaryCacheStore.purgeInternal() - releaseConnection() should be
called in finally block.
---------------------------------------------------------------------------------------------
Key: ISPN-2033
URL:
https://issues.jboss.org/browse/ISPN-2033
Project: Infinispan
Issue Type: Bug
Components: Loaders and Stores
Affects Versions: 5.2.0.Beta2, 5.1.8.Final
Environment: JBoss 7.1.1 Final
Reporter: Jim Dunkerton
Assignee: Tristan Tarrant
Labels: cache, connection_pool, database
Fix For: 5.2.0.Beta3, 5.2.0.Final
Attachments: 0001-ISPN-2033-Fixes-jdbc-connection-leak-when-the-purger.patch
A potential memory leak of pooled DB connections is present in JdbcBinaryCacheStore.
Observe the catch and finally blocks of the purgeInternal() method. The pooled DB
connection is not released unless an SQLException has been thrown. Contrast with
JdbcStringBasedCacheStore.purgeInternal(), where the releaseConnection() is invoked in the
finally block.
When using a JdbcMixedCacheStore, I noticed a DB connection leak. It appeared that for
every two connections being acquired, only one was being released. I believe it is down
to the fact that the JdbcBinaryCacheStore inside the JdbcMixedCacheStore is not releasing
its connections properly (i.e. in its finally block) whereas the JdbcStringBasedCacheStore
is.
I guess a workaround is to use only a JdbcStringBasedCacheStore, not a
JdbcMixedCacheStore.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: