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

Anton Vinogradov updated IGNITE-17112:
--------------------------------------
    Description: 
Consistency repair repairs the consistency for the data committed on at least 
single node.

But partition counter may have gaps for prepared, but not committed data, and 
such gaps will cause exception on cluster activation: 
{noformat}
2022-06-03 22:01:59.695 
[ERROR][sys-#322][org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager]
 Failed to update partition counter. Most probably a node with most actual data 
is out of topology or data streamer is used in preload mode 
(allowOverride=false) concurrently with cache transactions [grpName=XXX, 
partId=9099]
org.apache.ignite.IgniteCheckedException: Failed to update the counter 
[newVal=4854911, curState=Counter [lwm=4854911, holes={4854912=Item 
[start=4854912, delta=1]}, maxApplied=4854913, hwm=4854911]]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.PartitionUpdateCounterTrackingImpl.update(PartitionUpdateCounterTrackingImpl.java:153)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.PartitionUpdateCounterErrorWrapper.update(PartitionUpdateCounterErrorWrapper.java:97)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.updateCounter(IgniteCacheOffheapManagerImpl.java:1687)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.updateCounter(GridCacheOffheapManager.java:2530)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition.updateCounter(GridDhtLocalPartition.java:913)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopologyImpl.update(GridDhtPartitionTopologyImpl.java:1491)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.lambda$updatePartitionFullMap$81bdb8e8$1(GridDhtPartitionsExchangeFuture.java:4817)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.util.IgniteUtils.lambda$null$1(IgniteUtils.java:11358)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
[?:1.8.0_322]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[?:1.8.0_322]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[?:1.8.0_322]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at java.lang.Thread.run(Thread.java:750)
{noformat}

Consistency check via cli must close this gaps on successful consistency repair.

  was:
Consistency fix still fixes consistency for the data committed on at least 
single node.

But partition counter may have gaps for prepared, but not committed data, and 
such gaps will cause exception on cluster activation: 
{noformat}
2022-06-03 22:01:59.695 
[ERROR][sys-#322][org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager]
 Failed to update partition counter. Most probably a node with most actual data 
is out of topology or data streamer is used in preload mode 
(allowOverride=false) concurrently with cache transactions [grpName=XXX, 
partId=9099]
org.apache.ignite.IgniteCheckedException: Failed to update the counter 
[newVal=4854911, curState=Counter [lwm=4854911, holes={4854912=Item 
[start=4854912, delta=1]}, maxApplied=4854913, hwm=4854911]]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.PartitionUpdateCounterTrackingImpl.update(PartitionUpdateCounterTrackingImpl.java:153)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.PartitionUpdateCounterErrorWrapper.update(PartitionUpdateCounterErrorWrapper.java:97)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.updateCounter(IgniteCacheOffheapManagerImpl.java:1687)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.updateCounter(GridCacheOffheapManager.java:2530)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition.updateCounter(GridDhtLocalPartition.java:913)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopologyImpl.update(GridDhtPartitionTopologyImpl.java:1491)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.lambda$updatePartitionFullMap$81bdb8e8$1(GridDhtPartitionsExchangeFuture.java:4817)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
org.apache.ignite.internal.util.IgniteUtils.lambda$null$1(IgniteUtils.java:11358)
 ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
[?:1.8.0_322]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[?:1.8.0_322]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[?:1.8.0_322]
 ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at java.lang.Thread.run(Thread.java:750)
{noformat}


> Consistency check must fix counter after the consistency fix
> ------------------------------------------------------------
>
>                 Key: IGNITE-17112
>                 URL: https://issues.apache.org/jira/browse/IGNITE-17112
>             Project: Ignite
>          Issue Type: Sub-task
>            Reporter: Anton Vinogradov
>            Assignee: Anton Vinogradov
>            Priority: Major
>             Fix For: 2.14
>
>
> Consistency repair repairs the consistency for the data committed on at least 
> single node.
> But partition counter may have gaps for prepared, but not committed data, and 
> such gaps will cause exception on cluster activation: 
> {noformat}
> 2022-06-03 22:01:59.695 
> [ERROR][sys-#322][org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager]
>  Failed to update partition counter. Most probably a node with most actual 
> data is out of topology or data streamer is used in preload mode 
> (allowOverride=false) concurrently with cache transactions [grpName=XXX, 
> partId=9099]
> org.apache.ignite.IgniteCheckedException: Failed to update the counter 
> [newVal=4854911, curState=Counter [lwm=4854911, holes={4854912=Item 
> [start=4854912, delta=1]}, maxApplied=4854913, hwm=4854911]]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
> org.apache.ignite.internal.processors.cache.PartitionUpdateCounterTrackingImpl.update(PartitionUpdateCounterTrackingImpl.java:153)
>  ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
> org.apache.ignite.internal.processors.cache.PartitionUpdateCounterErrorWrapper.update(PartitionUpdateCounterErrorWrapper.java:97)
>  ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.updateCounter(IgniteCacheOffheapManagerImpl.java:1687)
>  ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.updateCounter(GridCacheOffheapManager.java:2530)
>  ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
> org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition.updateCounter(GridDhtLocalPartition.java:913)
>  ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
> org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopologyImpl.update(GridDhtPartitionTopologyImpl.java:1491)
>  ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.lambda$updatePartitionFullMap$81bdb8e8$1(GridDhtPartitionsExchangeFuture.java:4817)
>  ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
> org.apache.ignite.internal.util.IgniteUtils.lambda$null$1(IgniteUtils.java:11358)
>  ~[ignite-core-2.11.0-p5.jar:2.11.0-p5]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
> [?:1.8.0_322]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [?:1.8.0_322]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [?:1.8.0_322]
>  ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣at java.lang.Thread.run(Thread.java:750)
> {noformat}
> Consistency check via cli must close this gaps on successful consistency 
> repair.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to