Skip to content

DAOS-17831 control: Add dmg pool rebuild start|stop cmds - #16686

Merged
johannlombardi merged 5 commits into
masterfrom
tanabarr/control-poolrbld-startstop
Sep 16, 2025
Merged

johannlombardi merged 5 commits into
masterfrom
tanabarr/control-poolrbld-startstop

Conversation

@tanabarr

@tanabarr tanabarr commented Jul 30, 2025 •

Copy link
Copy Markdown
Contributor

Add start and stop interactive rebuild commands for a pool to dmg.
Includes dmg syntax updates, dRPC protobuf definitions and call
handling which in turn executes existing ds_mgmt_pool_rebuild_start
and stop API.

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

@tanabarr tanabarr self-assigned this Jul 30, 2025
@tanabarr tanabarr added control-plane work on the management infrastructure of the DAOS Control Plane CR Catastrophic Recovery Feature labels Jul 30, 2025
@github-actions

github-actions Bot commented Jul 30, 2025 •

Copy link
Copy Markdown

Ticket title is 'Add dmg pool rebuild start|stop cmds'
Status is 'In Review'
Labels: 'Rebuild,control-plane'
https://daosio.atlassian.net/browse/DAOS-17831

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Build on Leap 15.5 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-16686/1/execution/node/418/log

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@tanabarr
tanabarr force-pushed the tanabarr/control-poolrbld-startstop branch from 8365f7d to 651dc81 Compare August 28, 2025 17:09
@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Functional on EL 8.8 completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-16686/2/testReport/

@tanabarr
tanabarr force-pushed the tanabarr/control-poolrbld-startstop branch from 651dc81 to adb6313 Compare August 29, 2025 09:48
@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Functional on EL 8.8 completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-16686/3/testReport/

@tanabarr
tanabarr force-pushed the tanabarr/control-poolrbld-startstop branch from adb6313 to 2acc178 Compare September 2, 2025 13:14
@daosbuild3

Copy link
Copy Markdown
Collaborator

@tanabarr
tanabarr force-pushed the tanabarr/control-poolrbld-startstop branch from 2acc178 to 696c466 Compare September 2, 2025 17:30
@tanabarr
tanabarr marked this pull request as ready for review September 2, 2025 17:30
@tanabarr
tanabarr requested review from a team as code owners September 2, 2025 17:30
@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Functional on EL 8.8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-16686/4/display/redirect

@tanabarr

tanabarr commented Sep 2, 2025

Copy link
Copy Markdown
Contributor Author

@kccain can you suggest some suitable steps to run some basic manual sanity/smoke testing on this PR? e.g. create pool, exclude ranks, start interactive rebuild, see something happened in the logs etc.

@kccain

kccain commented Sep 2, 2025 •

Copy link
Copy Markdown
Contributor

@kccain can you suggest some suitable steps to run some basic manual sanity/smoke testing on this PR? e.g. create pool, exclude ranks, start interactive rebuild, see something happened in the logs etc.

@tanabarr sure. The timing of the rebuild execution and the stop command can be tricky to get right. If the op:Rebuild finishes before the stop command is received, then the rebuild will have gone to its final step (op:Reclaim) and will result the rebuild completing successfully (Rebuild done, status=0). You may have more luck with stopping a reintegration rebuild than the original exclude. That's what happened for me when I built and tried this branch on a developer system. Missed the timing window to stop/restart the exclude rebuild. But caught it on the subsequent reintegration. See below.

As one option (exlcude-based rebuild), you'll want to run dmg pool exclude --ranks= <pool_label> (or kill a rank and wait for the exclusion to occur), wait for the rebuild to get started (according to dmg pool query rebuild state becoming Busy, status=0), then (quickly) running dmg pool rebuild stop <pool_label>. Then, monitoring with dmg pool query <pool_label> should (assuming stop command timing was fortunate) eventually report "Rebuild failed, status=-2027 with -2027 being the value -DER_OP_CANCELED). The pool will stay in this state until the start command is run next. Run dmg pool rebuild start <pool_label> and monitor the rebuild progress with dmg pool query <pool_label> until the state is Done, status=0.

Alternatively, for reintegration: After the original exclude rebuild ran (successfully, without being stopped), run dmg pool reintegrate --ranks=, wait for rebuild to start, run the rebuild stop command, confirm rebuild status=-2027, then dmg pool rebuild start again and confirm with pool query that the rebuild state becomes Done, status=0.

In the PS leader engine logs, here is an example of what would be seen with a (stopped) rebuild (the op:Rebuild is aborted with status=-2027, and an op:Fail_reclaim is run for this "failure"):

hsw-202: /tmp/kccain/server1.log.343704.rank=2:09/02-20:57:06.46 hsw-202 DAOS[343704/0/170] rebuild INFO src/rebuild/srv.c:1042 rebuild_leader_status_check() rb=ae660164/25/3/Rebuild [aborted] (leader 2 dtx_gl 25 toberb_obj=9, rb_obj=3, rec=178258112, size=178258168 done 0 status -2027/0 stable 20ba013f95580000 reclaim 20ba012d2fe40002 duration=6 secs)
hsw-202: /tmp/kccain/server1.log.343704.rank=2:09/02-20:57:17.46 hsw-202 DAOS[343704/0/176] rebuild INFO src/rebuild/srv.c:1042 rebuild_leader_status_check() rb=ae660164/17/4/Reclaim fail [completed] (leader 2 dtx_gl 25 toberb_obj=0, rb_obj=0, rec=0, size=0 done 2 status 0/0 stable 20ba01688ff00000 reclaim 20ba013f95580000 duration=6 secs)

And then when the pool rebuild start command is run, eventually the rebuild op:Rebuild should complete successfully, and its corresponding op:Reclaim

hsw-202: /tmp/kccain/server1.log.343704.rank=2:09/02-21:04:58.46 hsw-202 DAOS[343704/0/182] rebuild INFO src/rebuild/srv.c:1042 rebuild_leader_status_check() rb=ae660164/25/5/Rebuild [completed] (leader 2 dtx_gl 25 toberb_obj=9, rb_obj=3, rec=263192768, size=263192824 done 2 status 0/0 stable 20ba0816795c0000 reclaim 20ba080478940002 duration=8 secs)
hsw-202: /tmp/kccain/server1.log.343704.rank=2:09/02-21:05:11.46 hsw-202 DAOS[343704/0/195] rebuild INFO src/rebuild/srv.c:1042 rebuild_leader_status_check() rb=ae660164/25/6/Reclaim [completed] (leader 2 dtx_gl 33 toberb_obj=0, rb_obj=3, rec=0, size=0 done 2 status 0/0 stable 20ba0846e6e80000 reclaim 20ba080478940002 duration=8 secs)

@tanabarr
tanabarr dismissed stale reviews from kjacque and kccain via 854e060 September 10, 2025 01:04
@tanabarr
tanabarr removed the request for review from a team September 10, 2025 01:05
@tanabarr tanabarr removed the forced-landing The PR has known failures or has intentionally reduced testing, but should still be landed. label Sep 10, 2025
@tanabarr
tanabarr requested review from kccain and kjacque September 10, 2025 01:05
@tanabarr

Copy link
Copy Markdown
Contributor Author

had to resolve conflicts

kccain
kccain previously approved these changes Sep 10, 2025
@daltonbohning

Copy link
Copy Markdown
Contributor

Copyright check is failing because the latest message was signed off with an intel email

Signed-off-by: Tom Nabarro <tom.nabarro@intel.com>

kjacque
kjacque previously approved these changes Sep 10, 2025
…olrbld-startstop

Features: control
Allow-unstable-test: true
Signed-off-by: Tom Nabarro <thomas.nabarro@hpe.com>
@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Functional Hardware Large 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-16686/10/execution/node/734/log

@tanabarr tanabarr added the forced-landing The PR has known failures or has intentionally reduced testing, but should still be landed. label Sep 12, 2025
@tanabarr
tanabarr dismissed stale reviews from kjacque and kccain via becfcc0 September 12, 2025 20:33
@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Unit Test with memcheck on EL 8.8 completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-16686/11/testReport/

@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Unit Test bdev with memcheck on EL 8.8 completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-16686/11/testReport/

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Unit Test with memcheck on EL 8.8 completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-16686/12/testReport/

@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Unit Test bdev with memcheck on EL 8.8 completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-16686/12/testReport/

@knard38 knard38 left a comment

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.

LGTM for what I understand

@johannlombardi
johannlombardi merged commit 6225f35 into master Sep 16, 2025
28 of 31 checks passed
@johannlombardi
johannlombardi deleted the tanabarr/control-poolrbld-startstop branch September 16, 2025 23:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

control-plane work on the management infrastructure of the DAOS Control Plane CR Catastrophic Recovery Feature forced-landing The PR has known failures or has intentionally reduced testing, but should still be landed.

Development

Successfully merging this pull request may close these issues.

7 participants