[
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)