[
https://issues.apache.org/jira/browse/IGNITE-25464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vyacheslav Koptilin updated IGNITE-25464:
-----------------------------------------
Labels: ignite-3 (was: )
> Double write intent switch
> --------------------------
>
> Key: IGNITE-25464
> URL: https://issues.apache.org/jira/browse/IGNITE-25464
> Project: Ignite
> Issue Type: Bug
> Reporter: Roman Puchkovskiy
> Assignee: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3
> Fix For: 3.1
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> TxCleanupRequestHandler sends WriteIntentSwitchReplicaRequest to the replica.
> If the replica responds synchronously (not via Raft future), a
> ClassCastException happens (because TxCleanupRequestHandler expects a
> ReplicaResult with a
> WriteIntentSwitchReplicatedInfo inside, but instead it gets a
> WriteIntentSwitchReplicatedInfo, not wrapped in a ReplicaRequest.
> When TxCleanupRequestHandler gets an exception of any kind, it retries the WI
> switch request. As first request has actually succeeded, this makes it 2.
> Original exception is returned in a response to TxCleanupRequestSender, but
> it ignores it and treats any response as an indication of success.
> To sum up:
> # We need a test that verifies that in different scenarios (only reads in RW
> from a partition, writes to a partition) just 1 WI switch is made on
> transaction finish
> # Class cast exception should be eliminated
> # If an exception happens, it should not be silently swallowed. We probably
> need to write it to log at WARN indicating that this is just a cleanup
> problem and that it does not influence the transaction outcome
--
This message was sent by Atlassian Jira
(v8.20.10#820010)