[
https://issues.apache.org/jira/browse/IGNITE-21325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Denis Chudov updated IGNITE-21325:
----------------------------------
Epic Link: IGNITE-21174
> Hold the transactional requests processing while the primary expired event
> processing is in progress
> ----------------------------------------------------------------------------------------------------
>
> Key: IGNITE-21325
> URL: https://issues.apache.org/jira/browse/IGNITE-21325
> Project: Ignite
> Issue Type: Improvement
> Reporter: Denis Chudov
> Priority: Major
> Labels: ignite-3
>
> Motivation
> No processing of any transactional request should be started when the event
> processing of PRIMARY_REPLICA_EXPIRED event is in progress. The reason is
> that such requests may try to acquire transactional locks on the current
> primary replica, and the locks acquired during the previous lease are
> released by the listener of PRIMARY_REPLICA_EXPIRED event. The validity of
> the current primary is checked in
> {{{}PartitionReplicaListener#ensureReplicaIsPrimary{}}}.
> We must ensure that this method is called after the processing of
> PRIMARY_REPLICA_EXPIRED event. The future returned by
> {{PlacementDriver#previousPrimaryExpired}} can be used for this.
> Definition of done
> The processing of transactional requests for the current primary replica
> can't be started before the processing of PRIMARY_REPLICA_EXPIRED event
> finishes.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)