You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mainly including the following fixes:
1. When DTX leader switch, it is possible that the old DTX leader
wanted to abort such DTX but not completed before its eviction.
And then the new DTX leader may re-execute related modification
successfully and try to commit such DTX. If without control, it
is possible that those in-flight DTX ABORT RPC from the old DTX
leader may abort the DTX that is to be committed by the new DTX
leader, then break DTX semantics.
The patch adds @Version parameter when abort DTX: when new DTX
leader handles resent RPC from client, related DTX version will
be refreshed if it has been prepared by old DTX leader; anytime
when abort DTX locally, the logic will compare the version from
ABORT request with related DTX version and skip stale ABORT RPC.
2. vos_dtx_load_mbs() maybe triggered before related DTX prepared
locally. Under such case, related MBS information is empty. We
need to handle such case to avoid segmentation fault.
3. Explicitly cleanup non-prepared DTX after modification failure
to avoid leaking stale active DTX (header) in DTX table.
Signed-off-by: Fan Yong <fan.yong@hpe.com>
0 commit comments