Skip to content

DAOS-18531 vos: setup ts_set in vos_obj_incarnate()#17957

Merged
gnailzenh merged 1 commit intorelease/2.8from
niu/release-28/DAOS-18531-ts_set
Apr 22, 2026
Merged

DAOS-18531 vos: setup ts_set in vos_obj_incarnate()#17957
gnailzenh merged 1 commit intorelease/2.8from
niu/release-28/DAOS-18531-ts_set

Conversation

@NiuYawei
Copy link
Copy Markdown
Contributor

@NiuYawei NiuYawei commented Apr 9, 2026

Replace the vos_obj_hold() call before vos_obj_incarnate() with vos_obj_acquire() to ensure the ts_set setup is fully done within transaction, that can make code cleaner and avoid following race:

  • Updater A called vos_obj_hold(), it failed to find the OI and mark the obj entry in ts_set as negative.
  • Updater A yield.
  • Concurrent updater B created OI and setup obj->obj_df.
  • Updater A resumed to call vos_obj_incarnate(), it found that the obj->obj_df is non-NULL so skipped OI creation.
  • The ts_set for updater A is now in an inconsistent state, it's negative but without 'se_create_idx' set.

Steps for the author:

  • Commit message follows the guidelines.
  • Appropriate Features or Test-tag pragmas were used.
  • Appropriate Functional Test Stages were run.
  • At least two positive code reviews including at least one code owner from each category referenced in the PR.
  • Testing is complete. If necessary, forced-landing label added and a reason added in a comment.

After all prior steps are complete:

  • Gatekeeper requested (daos-gatekeeper added as a reviewer).

Replace the vos_obj_hold() call before vos_obj_incarnate() with
vos_obj_acquire() to ensure the ts_set setup is fully done within
transaction, that can make code cleaner and avoid following race:

- Updater A called vos_obj_hold(), it failed to find the OI and
  mark the obj entry in ts_set as negative.
- Updater A yield.
- Concurrent updater B created OI and setup obj->obj_df.
- Updater A resumed to call vos_obj_incarnate(), it found that
  the obj->obj_df is non-NULL so skipped OI creation.
- The ts_set for updater A is now in an inconsistent state, it's
  negative but without 'se_create_idx' set.

Signed-off-by: Niu Yawei <[email protected]>
@NiuYawei NiuYawei requested review from a team as code owners April 9, 2026 13:25
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2026

Ticket title is 'mdonssd phase 2: Assertion 'set_entry->se_create_idx != NULL' failed'
Status is 'In Progress'
Labels: 'md_on_ssd2,request_for_2.6.5,request_for_2.8,test_2.8,testp1'
https://daosio.atlassian.net/browse/DAOS-18531

@daosbuild3
Copy link
Copy Markdown
Collaborator

@daosbuild3
Copy link
Copy Markdown
Collaborator

Test stage Functional Hardware Medium MD on SSD completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-17957/2/testReport/

@NiuYawei
Copy link
Copy Markdown
Contributor Author

Errors during downloading metadata for repository 'artifactory.daos.hpc.amslabs.hpecorp.net_artifactory_mellanox-proxy_doca_3.2.1_rhel9_x86_64': 07:44:46 DEBUG| - Curl error (28): Timeout was reached for https://artifactory.daos.hpc.amslabs.hpecorp.net/artifactory/mellanox-proxy/doca/3.2.1/rhel9/x86_64/repodata/repomd.xml [Operation timed out after 30000 milliseconds with 0 out of 0 bytes received] 07:44:46 DEBUG| Error: Failed to download metadata for repo 'artifactory.daos.hpc.amslabs.hpecorp.net_artifactory_mellanox-proxy_doca_3.2.1_rhel9_x86_64': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

Single test failure due to Github connectivity issue.

@NiuYawei NiuYawei requested a review from a team April 15, 2026 05:55
@NiuYawei
Copy link
Copy Markdown
Contributor Author

@daos-stack/daos-gatekeeper only one failure due to Github connectivity, require force landing.

@gnailzenh gnailzenh merged commit 0c08c70 into release/2.8 Apr 22, 2026
38 of 41 checks passed
@gnailzenh gnailzenh deleted the niu/release-28/DAOS-18531-ts_set branch April 22, 2026 03:17
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.

5 participants