[ https://issues.apache.org/jira/browse/IGNITE-17851?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Anton Vinogradov updated IGNITE-17851: -------------------------------------- Description: Currently {{PartitionUpdateCounterTrackingImpl#update()}} just returns false when closing already closed gaps. The result is ignored on non-rollback calls at {{{}IgniteTxHandler#applyPartitionsUpdatesCounters(){}}}. Such behaviour allows to reuse the same counter and this may lead to the hidden inconsistency. I've checked that {{PartitionUpdateCounterTrackingImpl#update()}} never returns false on non-rollback call, using the [Check|https://github.com/apache/ignite/pull/10293/files], but we must guarantee this. {{PartitionUpdateCounterTrackingImpl#update()}} method should be refactored to provide only-once closing guarantee or {{IgniteTxHandler#applyPartitionsUpdatesCounters()}} shoud check the update result for every the call (including non-rollback). was: Currently {{PartitionUpdateCounterTrackingImpl#update()}} just returns false when closing already closed gaps. The result is ignored on non-rollback calls at {{{}IgniteTxHandler#applyPartitionsUpdatesCounters(){}}}. Such behaviour allows to reuse the same counter and this may lead to the hidden inconsistency. I've checked that {{PartitionUpdateCounterTrackingImpl#update()}} never returns false on non-rollback call, using the [Check|https://github.com/apache/ignite/pull/10293/files]. {{PartitionUpdateCounterTrackingImpl#update()}} method should be refactored to provide only-once closing guarantee or {{IgniteTxHandler#applyPartitionsUpdatesCounters()}} shoud check the update result for every the call (including non-rollback). > TX cache update counter must deny already closed gaps re-closing > ---------------------------------------------------------------- > > Key: IGNITE-17851 > URL: https://issues.apache.org/jira/browse/IGNITE-17851 > Project: Ignite > Issue Type: Sub-task > Reporter: Anton Vinogradov > Priority: Major > Labels: ise > > Currently {{PartitionUpdateCounterTrackingImpl#update()}} just returns false > when closing already closed gaps. > The result is ignored on non-rollback calls at > {{{}IgniteTxHandler#applyPartitionsUpdatesCounters(){}}}. > Such behaviour allows to reuse the same counter and this may lead to the > hidden inconsistency. > I've checked that {{PartitionUpdateCounterTrackingImpl#update()}} never > returns false on non-rollback call, using the > [Check|https://github.com/apache/ignite/pull/10293/files], but we must > guarantee this. > {{PartitionUpdateCounterTrackingImpl#update()}} method should be refactored > to provide only-once closing guarantee or > {{IgniteTxHandler#applyPartitionsUpdatesCounters()}} shoud check the update > result for every the call (including non-rollback). > -- This message was sent by Atlassian Jira (v8.20.10#820010)