DAOS-19496 control: remove per-engine sysdb on format replace - #18860
DAOS-19496 control: remove per-engine sysdb on format replace#18860tanabarr wants to merge 3 commits into
Conversation
|
Ticket title is 'Enable single rank format replace in MD-on-SSD' |
| // Format control metadata first, if needed | ||
| if needs, err := cs.storage.ControlMetadataNeedsFormat(); err != nil { | ||
| return false, errors.Wrap(err, "detecting if metadata format is needed") | ||
| } else if needs || reformat { |
There was a problem hiding this comment.
From my understanding, the engine-selection logic in the new replace branch relies solely on eng.GetStorage().ScmNeedsFormat(), which is purely an SCM/tmpfs mount check and has no relation to whether that engine's own control_metadata subdirectory is actually intact.
If I am correct, that means: if engine X's control-metadata subdirectory is corrupted but its SCM still reads as mounted/formatted, ScmNeedsFormat() returns false for it, it's excluded from needFormatIdxs, and its corrupted metadata is never wiped via --replace — silently, with no error or indication anything was skipped.
There was a problem hiding this comment.
I've refactor the PR please review whether this comment is still relevant thanks
| if err := p.sys.Chown(req.DataPath, req.OwnerUID, req.OwnerGID); err != nil { | ||
| return errors.Wrapf(err, "setting ownership of control metadata subdirectory to %d/%d", req.OwnerUID, req.OwnerGID) | ||
| // If specific engine indices are provided and DataPath exists, only delete those engines | ||
| if len(req.EngineIdxs) > 0 { |
There was a problem hiding this comment.
From my understanding, formatMetadata()'s 'full format' branch (needs-format, or --force reformat) always builds engineIdxs from every currently-configured instance, so it's never empty when there's at least one engine.
If I am correct, that means this part of the code is not reachable any more. Maybe the condition should be changed?
Features: control Signed-off-by: Tom Nabarro <thomas.nabarro@hpe.com>
a18eb82 to
e00ba3a
Compare
…onssd-fmtreplace-perenginesysdb Signed-off-by: Tom Nabarro <thomas.nabarro@hpe.com>
Features: control Signed-off-by: Tom Nabarro <thomas.nabarro@hpe.com>
|
Test stage Functional on EL 9 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18860/3/execution/node/1263/log |
Steps for the author:
After all prior steps are complete: