Skip to content

DAOS-19616 rebuild: ENV variable for rebuild restart on timeout - b28 - #19243

Closed
Nasf-Fan wants to merge 2 commits into
Nasf-Fan/DAOS-19616_1_b28from
Nasf-Fan/DAOS-19616_1_add_b28
Closed

Nasf-Fan wants to merge 2 commits into
Nasf-Fan/DAOS-19616_1_b28from
Nasf-Fan/DAOS-19616_1_add_b28

Conversation

@Nasf-Fan

Copy link
Copy Markdown
Contributor

Add server side environment variable DAOS_REBUILD_CONTINUE_ON_TIMEOUT to control whether continue rebuild process or not if got timeout when wait for global stable epoch. It is false by default and rebuild will failout (and restart) when got timeout. If explicitly set it as true, then there is risk of data lost in subsequent rebuild process if race with inflight IO. It is a temporary solution.

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

Nasf-Fan and others added 2 commits October 11, 2026 12:14
1. On each target, before scanning the container shard for rebuild,
   the logic will wait its global stable epoch (per container based)
   to exceed rebuild epoch. It will guarantee that all the inflight
   IO result that are triggered before rebuild start is visible to
   the subsequent rebuild logic whether on DTX leader or not.

2. Before handling some modification on DTX leader, need to check
   whether the epoch for current modification is newer than pool's
   rebuild epoch or not. If not, then return -DER_UPDATE_AGAIN to
   the client that will retry the modification sometime later.

3. If the modification is in rebuilding/reintegrating, then related
   modification will use synchronous DTX to refresh related global
   stable epoch more quickly.

Signed-off-by: Fan Yong <fan.yong@hpe.com>
Co-authored-by: Xuezhao Liu <xuezhao.liu@hpe.com>
Co-authored-by: Wang Shilong <shilong.wang@hpe.com>
Add server side environment variable DAOS_REBUILD_CONTINUE_ON_TIMEOUT to
control whether continue rebuild process or not if got timeout when wait
for global stable epoch. It is false by default and rebuild will failout
(and restart) when got timeout. If explicitly set it as true, then there
is risk of data lost in subsequent rebuild process if race with inflight
IO. It is a temporary solution.

Signed-off-by: Fan Yong <fan.yong@hpe.com>
@github-actions

Copy link
Copy Markdown

Ticket title is 'FIO crc mismatch detected on 4x node IB config while running HSN cable pulls test'
Status is 'Awaiting backport'
Job should run at elevated priority (1)
https://daosio.atlassian.net/browse/DAOS-19616

@github-actions github-actions Bot added the priority Ticket has high priority (automatically managed) label Oct 11, 2026
@Nasf-Fan
Nasf-Fan force-pushed the Nasf-Fan/DAOS-19616_1_b28 branch 9 times, most recently from c319e70 to ae86b1e Compare October 12, 2026 13:22
@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Functional Hardware Medium Verbs Provider MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-19243/1/execution/node/1782/log

@Nasf-Fan
Nasf-Fan force-pushed the Nasf-Fan/DAOS-19616_1_b28 branch from ae86b1e to 1349cc9 Compare October 13, 2026 03:39
@Nasf-Fan

Copy link
Copy Markdown
Contributor Author

Not need it any longer.

@Nasf-Fan Nasf-Fan closed this Oct 13, 2026
@Nasf-Fan
Nasf-Fan deleted the Nasf-Fan/DAOS-19616_1_add_b28 branch October 13, 2026 04:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority Ticket has high priority (automatically managed)

Development

Successfully merging this pull request may close these issues.

2 participants