[jira] [Commented] (IGNITE-15245) JDBC connection leak with cache.invoke() over cache store with external JDBC storage
[ https://issues.apache.org/jira/browse/IGNITE-15245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17618700#comment-17618700 ] Yury Gerzhedovich commented on IGNITE-15245: [~xtern] , LGTM, thanks for the contribution! > JDBC connection leak with cache.invoke() over cache store with external JDBC > storage > > > Key: IGNITE-15245 > URL: https://issues.apache.org/jira/browse/IGNITE-15245 > Project: Ignite > Issue Type: Bug > Components: cache >Affects Versions: 2.10 >Reporter: Ilya Korol >Assignee: Pavel Pereslegin >Priority: Major > Fix For: 2.15 > > Time Spent: 10m > Remaining Estimate: 0h > > Given following snippet: > {code:java} > try (Transaction tx = > ignite.transactions().txStart(TransactionConcurrency.PESSIMISTIC, > TransactionIsolation.REPEATABLE_READ)) { > cache.invoke(pojo.getId(), entryProcessor, pojo); > tx.commit(); > } > {code} > If we run this over the cache that uses external storage (e.g. mysql), we may > get exceptions like: > {code:java} > org.apache.ignite.IgniteCheckedException: Failed to load object ... > at > org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadFromStore(GridCacheStoreManagerAdapter.java:334) > at > org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.load(GridCacheStoreManagerAdapter.java:292) > at > org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadAllFromStore(GridCacheStoreManagerAdapter.java:433) > at > org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadAll(GridCacheStoreManagerAdapter.java:399) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.loadMissingFromStore(GridDhtLockFuture.java:) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onComplete(GridDhtLockFuture.java:790) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onDone(GridDhtLockFuture.java:758) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onDone(GridDhtLockFuture.java:91) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:475) > at > org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:284) > at > org.apache.ignite.internal.util.future.GridCompoundFuture.markInitialized(GridCompoundFuture.java:273) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.map(GridDhtLockFuture.java:1052) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onOwnerChanged(GridDhtLockFuture.java:709) > at > org.apache.ignite.internal.processors.cache.GridCacheMvccManager.notifyOwnerChanged(GridCacheMvccManager.java:226) > at > org.apache.ignite.internal.processors.cache.GridCacheMvccManager.access$200(GridCacheMvccManager.java:81) > at > org.apache.ignite.internal.processors.cache.GridCacheMvccManager$3.onOwnerChanged(GridCacheMvccManager.java:163) > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkOwnerChanged(GridCacheMapEntry.java:5043) > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkOwnerChanged(GridCacheMapEntry.java:4995) > at > org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry.readyLock(GridDistributedCacheEntry.java:515) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.readyLocks(GridDhtLockFuture.java:617) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.map(GridDhtLockFuture.java:825) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.lockAllAsyncInternal(GridDhtTransactionalCacheAdapter.java:1027) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.obtainLockAsync(GridDhtTxLocalAdapter.java:720) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.lockAllAsync(GridDhtTxLocalAdapter.java:665) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.lockAllAsync(GridDhtTransactionalCacheAdapter.java:1238) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.processNearLockRequest0(GridDhtTransactionalCacheAdapter.java:823) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.processNearLockRequest(GridDhtTransactionalCacheAdapter.java:801) > at >
[jira] [Commented] (IGNITE-15245) JDBC connection leak with cache.invoke() over cache store with external JDBC storage
[ https://issues.apache.org/jira/browse/IGNITE-15245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17617185#comment-17617185 ] Ignite TC Bot commented on IGNITE-15245: {panel:title=Branch: [pull/10302/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} {panel:title=Branch: [pull/10302/head] Base: [master] : New Tests (1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1} {color:#8b}Cache 1{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=6830188]] * {color:#013220}IgniteBinaryCacheTestSuite: CacheJdbcPojoWriteBehindConnectionLeakTest.testInvoke - PASSED{color} {panel} [TeamCity *-- Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=6830293buildTypeId=IgniteTests24Java8_RunAll] > JDBC connection leak with cache.invoke() over cache store with external JDBC > storage > > > Key: IGNITE-15245 > URL: https://issues.apache.org/jira/browse/IGNITE-15245 > Project: Ignite > Issue Type: Bug > Components: cache >Affects Versions: 2.10 >Reporter: Ilya Korol >Assignee: Pavel Pereslegin >Priority: Major > Fix For: 2.15 > > Time Spent: 10m > Remaining Estimate: 0h > > Given following snippet: > {code:java} > try (Transaction tx = > ignite.transactions().txStart(TransactionConcurrency.PESSIMISTIC, > TransactionIsolation.REPEATABLE_READ)) { > cache.invoke(pojo.getId(), entryProcessor, pojo); > tx.commit(); > } > {code} > If we run this over the cache that uses external storage (e.g. mysql), we may > get exceptions like: > {code:java} > org.apache.ignite.IgniteCheckedException: Failed to load object ... > at > org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadFromStore(GridCacheStoreManagerAdapter.java:334) > at > org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.load(GridCacheStoreManagerAdapter.java:292) > at > org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadAllFromStore(GridCacheStoreManagerAdapter.java:433) > at > org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadAll(GridCacheStoreManagerAdapter.java:399) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.loadMissingFromStore(GridDhtLockFuture.java:) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onComplete(GridDhtLockFuture.java:790) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onDone(GridDhtLockFuture.java:758) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onDone(GridDhtLockFuture.java:91) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:475) > at > org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:284) > at > org.apache.ignite.internal.util.future.GridCompoundFuture.markInitialized(GridCompoundFuture.java:273) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.map(GridDhtLockFuture.java:1052) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onOwnerChanged(GridDhtLockFuture.java:709) > at > org.apache.ignite.internal.processors.cache.GridCacheMvccManager.notifyOwnerChanged(GridCacheMvccManager.java:226) > at > org.apache.ignite.internal.processors.cache.GridCacheMvccManager.access$200(GridCacheMvccManager.java:81) > at > org.apache.ignite.internal.processors.cache.GridCacheMvccManager$3.onOwnerChanged(GridCacheMvccManager.java:163) > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkOwnerChanged(GridCacheMapEntry.java:5043) > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkOwnerChanged(GridCacheMapEntry.java:4995) > at > org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry.readyLock(GridDistributedCacheEntry.java:515) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.readyLocks(GridDhtLockFuture.java:617) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.map(GridDhtLockFuture.java:825) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.lockAllAsyncInternal(GridDhtTransactionalCacheAdapter.java:1027) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.obtainLockAsync(GridDhtTxLocalAdapter.java:720) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.lockAllAsync(GridDhtTxLocalAdapter.java:665) > at >
[jira] [Commented] (IGNITE-15245) JDBC connection leak with cache.invoke() over cache store with external JDBC storage
[ https://issues.apache.org/jira/browse/IGNITE-15245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17616777#comment-17616777 ] Ignite TC Bot commented on IGNITE-15245: {panel:title=Branch: [pull/10302/head] Base: [master] : Possible Blockers (1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1} {color:#d04437}Control Utility 2{color} [[tests 1|https://ci2.ignite.apache.org/viewLog.html?buildId=6816585]] * IgniteControlUtilityTestSuite2: GridCommandHandlerDefragmentationTest.testDefragmentationStatus - History for base branch is absent. {panel} {panel:title=Branch: [pull/10302/head] Base: [master] : New Tests (436)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1} {color:#8b}Control Utility 2{color} [[tests 429|https://ci2.ignite.apache.org/viewLog.html?buildId=6816585]] * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testAtomicAndTxValueAndVersion[strategy=REMOVE, explicitGrp=false, callByGrp=false] - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testAtomicAndTxVersionOnly[strategy=RELATIVE_MAJORITY, explicitGrp=true, callByGrp=false] - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testCacheFilter[strategy=RELATIVE_MAJORITY, explicitGrp=true, callByGrp=false] - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testRepairNonExistentCache[strategy=RELATIVE_MAJORITY, explicitGrp=true, callByGrp=false] - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testAtomicAndTxValueAndVersion[strategy=REMOVE, explicitGrp=true, callByGrp=true] - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testAtomicAndTxVersionOnly[strategy=REMOVE, explicitGrp=false, callByGrp=false] - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testCacheFilter[strategy=REMOVE, explicitGrp=false, callByGrp=false] - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testRepairNonExistentCache[strategy=REMOVE, explicitGrp=false, callByGrp=false] - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testAtomicAndTxValueAndVersion[strategy=REMOVE, explicitGrp=true, callByGrp=false] - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testAtomicAndTxVersionOnly[strategy=REMOVE, explicitGrp=true, callByGrp=true] - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: GridCommandHandlerConsistencyTest.testCacheFilter[strategy=REMOVE, explicitGrp=true, callByGrp=true] - PASSED{color} ... and 418 new tests {color:#8b}Platform .NET (Windows){color} [[tests 2|https://ci2.ignite.apache.org/viewLog.html?buildId=6816545]] * {color:#013220}exe: ClientConnectionTest.TestExceptionInRetryPolicyPropagatesToCaller(True) - PASSED{color} * {color:#013220}exe: ClientConnectionTest.TestExceptionInRetryPolicyPropagatesToCaller(False) - PASSED{color} {color:#8b}Cache 1{color} [[tests 1|https://ci2.ignite.apache.org/viewLog.html?buildId=6816472]] * {color:#013220}IgniteBinaryCacheTestSuite: CacheJdbcPojoWriteBehindConnectionLeakTest.testInvoke - PASSED{color} {color:#8b}Thin Client: Java{color} [[tests 4|https://ci2.ignite.apache.org/viewLog.html?buildId=6816566]] * {color:#013220}ClientTestSuite: ReliabilityTestPartitionAwareAsync.testExceptionInRetryPolicyPropagatesToCaller - PASSED{color} * {color:#013220}ClientTestSuite: ReliabilityTestPartitionAware.testExceptionInRetryPolicyPropagatesToCaller - PASSED{color} * {color:#013220}ClientTestSuite: ReliabilityTestAsync.testExceptionInRetryPolicyPropagatesToCaller - PASSED{color} * {color:#013220}ClientTestSuite: ReliabilityTest.testExceptionInRetryPolicyPropagatesToCaller - PASSED{color} {panel} [TeamCity *-- Run :: All* Results|https://ci2.ignite.apache.org/viewLog.html?buildId=6816577buildTypeId=IgniteTests24Java8_RunAll] > JDBC connection leak with cache.invoke() over cache store with external JDBC > storage > > > Key: IGNITE-15245 > URL: https://issues.apache.org/jira/browse/IGNITE-15245 > Project: Ignite > Issue Type: Bug > Components: cache >Affects Versions: 2.10 >Reporter: Ilya Korol >Assignee: Pavel Pereslegin >Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > Given following snippet: > {code:java} > try (Transaction tx = > ignite.transactions().txStart(TransactionConcurrency.PESSIMISTIC, > TransactionIsolation.REPEATABLE_READ)) { > cache.invoke(pojo.getId(), entryProcessor,