Skip to content

DAOS-6499 dtx: handle resent RPC properly#4341

Merged
jolivier23 merged 1 commit intomasterfrom
DAOS-6499_2
Jan 27, 2021
Merged

DAOS-6499 dtx: handle resent RPC properly#4341
jolivier23 merged 1 commit intomasterfrom
DAOS-6499_2

Conversation

@Nasf-Fan
Copy link
Copy Markdown
Contributor

To handle the race from DTX refresh, the leader will pre-create
the DTX entry in DRAM before dispatching related modifications.
If such pre-created DTX entry was found by the resent handling
logic before leader prepared related local modifications, then
it should not be regarded as 'prepared' locally; instead, under
such case, related RPC needs to be handled as a new RPC on the
leader, and then dtx_leader_begin will find former non-prepared
DTX entry (that is in processing), then reply "-DER_INPROGRESS"
to the client.

Signed-off-by: Fan Yong fan.yong@intel.com

To handle the race from DTX refresh, the leader will pre-create
the DTX entry in DRAM before dispatching related modifications.
If such pre-created DTX entry was found by the resent handling
logic before leader prepared related local modifications, then
it should not be regarded as 'prepared' locally; instead, under
such case, related RPC needs to be handled as a new RPC on the
leader, and then dtx_leader_begin will find former non-prepared
DTX entry (that is in processing), then reply "-DER_INPROGRESS"
to the client.

Signed-off-by: Fan Yong <fan.yong@intel.com>
Copy link
Copy Markdown
Collaborator

@daosbuild1 daosbuild1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. No errors found by checkpatch.

D_ASSERTF(0, "NOT allow to update act DTX entry for "DF_DTI
if (DAE_EPOCH(dae_old) != DAE_EPOCH(dae_new)) {
D_ASSERTF(!dae_old->dae_prepared,
"NOT allow to update act DTX entry for "DF_DTI
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"updating active DTX entry for DF_DTI is not allowed"

or

"Disallow update to active..."

@Nasf-Fan
Copy link
Copy Markdown
Contributor Author

daos_test -m failed for DAOS-6544.

@Nasf-Fan Nasf-Fan requested a review from a team January 26, 2021 11:01
Nasf-Fan added a commit that referenced this pull request Jan 26, 2021
Contains the patches:
#4013
#4303
#4326
#4341
#4354

Skip-nlt: true

Signed-off-by: Fan Yong <fan.yong@intel.com>
@Nasf-Fan
Copy link
Copy Markdown
Contributor Author

daos-test -m failed for DAOS-6544.

@jolivier23 jolivier23 merged commit 7a20c99 into master Jan 27, 2021
@jolivier23 jolivier23 deleted the DAOS-6499_2 branch January 27, 2021 19:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants