Skip to content

DAOS-19513 ddb: extend SPDK re-init guard to all NVMe devices - #18962

Draft
knard38 wants to merge 1 commit into
masterfrom
ckochhof/fix/master/daos-19513/patch-001
Draft

DAOS-19513 ddb: extend SPDK re-init guard to all NVMe devices#18962
knard38 wants to merge 1 commit into
masterfrom
ckochhof/fix/master/daos-19513/patch-001

Conversation

@knard38

@knard38 knard38 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Description

TODO

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

DAOS-18597 (PR #17838)'s guard against a crash-prone second
in-process SPDK/VOS init only applied when VMD was involved, but the
same SPDK re-init limitation affects any NVMe-backed pool. Generalize
the guard (ddb_vmd_wa.c/vmd_wa_can_proceed() becomes
ddb_spdk_reinit_wa.c/spdk_reinit_wa_can_proceed()) to cover all
NVMe-backed pools, and move every call site into ddb_vos.c next to
the vos_self_init() call it protects. This also fixes dv_pool_open()
checking the guard against the wrong db_path when --db_path was
omitted, the common case that reproduced the crash on real hardware.

Add a diagnostic-only DAOS_DDB_ALLOW_SPDK_REINIT environment variable
(non-release builds) to bypass the guard when validating a newer
SPDK/DPDK version. Expand tests to cover the generalized guard and
its new call sites, and document the limitation in ddb's README,
--help, and man page.

Features: recovery
Signed-off-by: Cedric Koch-Hofer <cedric.koch-hofer@hpe.com>
@knard38 knard38 self-assigned this Aug 28, 2026
@knard38 knard38 added the CR Catastrophic Recovery Feature label Aug 28, 2026
@github-actions

Copy link
Copy Markdown

Ticket title is 'ddb: SPDK re-initialization fails for standard (non-VMD) NVMe devices within a single ddb process'
Status is 'In Progress'
Labels: 'ddb'
https://daosio.atlassian.net/browse/DAOS-19513

@knard38
knard38 force-pushed the ckochhof/fix/master/daos-19513/patch-001 branch from 397f5c4 to d844603 Compare August 28, 2026 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CR Catastrophic Recovery Feature

Development

Successfully merging this pull request may close these issues.

2 participants