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