[jira] [Updated] (IGNITE-12854) Node failed under load when ATOMIC and TRANSACTIONAL caches created in the same cache group

2022-07-04 Thread Maxim Muzafarov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-12854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-12854:
-
Labels: IEP-80  (was: )

> Node failed under load when ATOMIC and TRANSACTIONAL caches created in the 
> same cache group
> ---
>
> Key: IGNITE-12854
> URL: https://issues.apache.org/jira/browse/IGNITE-12854
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.9
>Reporter: Aleksey Plekhanov
>Priority: Major
>  Labels: IEP-80
>
> Node failed with assertion error under concurrent puts to ATOMIC and 
> TRANSACTIONAL caches belonging to the same cache group:
> {noformat}
> java.lang.AssertionError: LWM after HWM: lwm=262, hwm=261
> at 
> org.apache.ignite.internal.processors.cache.PartitionUpdateCounterTrackingImpl.reserve(PartitionUpdateCounterTrackingImpl.java:262)
> at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.getAndIncrementUpdateCounter(IgniteCacheOffheapManagerImpl.java:1601)
> at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.getAndIncrementUpdateCounter(GridCacheOffheapManager.java:2162)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition.getAndIncrementUpdateCounter(GridDhtLocalPartition.java:1087)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.calculatePartitionUpdateCounters(IgniteTxLocalAdapter.java:520)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare0(GridDhtTxPrepareFuture.java:1343)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.mapIfLocked(GridDhtTxPrepareFuture.java:709)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare(GridDhtTxPrepareFuture.java:1104)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.prepareAsync(GridDhtTxLocal.java:411)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareNearTx(IgniteTxHandler.java:577)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareNearTx(IgniteTxHandler.java:374)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest0(IgniteTxHandler.java:183)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest(IgniteTxHandler.java:161)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1.apply(IgniteTxHandler.java:205)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1.apply(IgniteTxHandler.java:203)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1142)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:591)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:392)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:318)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:308)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1847)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1472)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1367)
> at 
> org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:565)
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120){noformat}
> Reproducer:
>  
> {code:java}
> public void testPartCounters() throws Exception {
> final AtomicBoolean end = new AtomicBoolean();
> final IgniteEx srv = startGrids(3);
> srv.cluster().active(true);
> IgniteInternalFuture loadFut = runMultiThreadedAsync(() -> {
> while (!end.get() && !fail) {
> List> caches = F.asList(
> srv.getOrCreateCache(new 
> CacheConfiguration<>(CACHE_NAME_ATOMIC)
> .setAtomicityMode(CacheAtomicityMode.ATOMIC)
> .setGroupName(GROUP_NAME)
> ),
> srv.getOrCreateCache(new CacheConfiguration<>(CACHE_NAME_TX)
> .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
> .setGroupName(GROUP_NAME)
> )
> );
>  

[jira] [Updated] (IGNITE-12854) Node failed under load when ATOMIC and TRANSACTIONAL caches created in the same cache group

2020-04-02 Thread Aleksey Plekhanov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-12854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Plekhanov updated IGNITE-12854:
---
Affects Version/s: (was: 2.8.1)
   (was: 2.8)

> Node failed under load when ATOMIC and TRANSACTIONAL caches created in the 
> same cache group
> ---
>
> Key: IGNITE-12854
> URL: https://issues.apache.org/jira/browse/IGNITE-12854
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.9
>Reporter: Aleksey Plekhanov
>Priority: Major
>
> Node failed with assertion error under concurrent puts to ATOMIC and 
> TRANSACTIONAL caches belonging to the same cache group:
> {noformat}
> java.lang.AssertionError: LWM after HWM: lwm=262, hwm=261
> at 
> org.apache.ignite.internal.processors.cache.PartitionUpdateCounterTrackingImpl.reserve(PartitionUpdateCounterTrackingImpl.java:262)
> at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.getAndIncrementUpdateCounter(IgniteCacheOffheapManagerImpl.java:1601)
> at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.getAndIncrementUpdateCounter(GridCacheOffheapManager.java:2162)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition.getAndIncrementUpdateCounter(GridDhtLocalPartition.java:1087)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.calculatePartitionUpdateCounters(IgniteTxLocalAdapter.java:520)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare0(GridDhtTxPrepareFuture.java:1343)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.mapIfLocked(GridDhtTxPrepareFuture.java:709)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare(GridDhtTxPrepareFuture.java:1104)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.prepareAsync(GridDhtTxLocal.java:411)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareNearTx(IgniteTxHandler.java:577)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareNearTx(IgniteTxHandler.java:374)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest0(IgniteTxHandler.java:183)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest(IgniteTxHandler.java:161)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1.apply(IgniteTxHandler.java:205)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1.apply(IgniteTxHandler.java:203)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1142)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:591)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:392)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:318)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:308)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1847)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1472)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1367)
> at 
> org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:565)
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120){noformat}
> Reproducer:
>  
> {code:java}
> public void testPartCounters() throws Exception {
> final AtomicBoolean end = new AtomicBoolean();
> final IgniteEx srv = startGrids(3);
> srv.cluster().active(true);
> IgniteInternalFuture loadFut = runMultiThreadedAsync(() -> {
> while (!end.get() && !fail) {
> List> caches = F.asList(
> srv.getOrCreateCache(new 
> CacheConfiguration<>(CACHE_NAME_ATOMIC)
> .setAtomicityMode(CacheAtomicityMode.ATOMIC)
> .setGroupName(GROUP_NAME)
> ),
> srv.getOrCreateCache(new CacheConfiguration<>(CACHE_NAME_TX)
> .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
> .setGroupName(GROUP_NAME)
>