Skip to content

Comments

DAOS-18582 vos: fix picking up pages for pinning#17578

Merged
daltonbohning merged 1 commit intomasterfrom
janekmi/DAOS-18582-fix-picking-up-pages-for-pinning
Feb 20, 2026
Merged

DAOS-18582 vos: fix picking up pages for pinning#17578
daltonbohning merged 1 commit intomasterfrom
janekmi/DAOS-18582-fix-picking-up-pages-for-pinning

Conversation

@janekmi
Copy link
Contributor

@janekmi janekmi commented Feb 19, 2026

As of now, this code path is used only by DTX commit/abort. The bug caused unrelated parts of the structure to be interpreted as page indices that were about to be pinned, instead of using only the page indices already added to the array. Because this part of the code determines both which pages should be pinned and whether additional pages would get pinned, it led to two outcomes:

In the best case: DTX commit/abort operations were processed in smaller "chunks" than intended, which could result in performance degradation.

In the worst case: The code reasoned a certain page indices are in the array where in fact they were not. As a result, some page indices never made it into the array and were never pinned. Later code assumed that all required pages have been pinned, so a missing page would ultimately lead to a crash.

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

As of now, this code path is used only by DTX commit/abort.
The bug caused unrelated parts of the structure to be interpreted as
page indices that were about to be pinned, instead of using only the
page indices already added to the array. Because this part of the code
determines both which pages should be pinned and whether additional
pages would get pinned, it led to two outcomes:

In the best case: DTX commit/abort operations were processed in smaller
"chunks" than intended, which could result in performance degradation.

In the worst case: The code reasoned a certain page indices are in the
array where in fact they were not. As a result, some page indices never
made it into the array and were never pinned. Later code assumed that
all required pages have been pinned, so a missing page would ultimately
lead to a crash.

Signed-off-by: Jan Michalski <jan-marian.michalski@hpe.com>
@janekmi janekmi requested review from a team as code owners February 19, 2026 17:11
@github-actions
Copy link

Ticket title is 'pool/verify_dtx.py:VerifyDTXMetrics.test_verify_dtx_metrics - test timeout w/ stack traces'
Status is 'In Review'
Labels: 'ci_master_weekly,md_on_ssd2,weekly_test'
https://daosio.atlassian.net/browse/DAOS-18582

Copy link
Contributor

@Nasf-Fan Nasf-Fan left a comment

Choose a reason for hiding this comment

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

It's great to catching that.

@janekmi janekmi requested a review from a team February 20, 2026 13:01
@daltonbohning daltonbohning merged commit e7add9e into master Feb 20, 2026
53 of 55 checks passed
@daltonbohning daltonbohning deleted the janekmi/DAOS-18582-fix-picking-up-pages-for-pinning branch February 20, 2026 15:22
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