John Ramsden has uploaded this change for review.
fix(rados-grace): shut down the client before process exit
cluster_connect() loses the rados client handle, leaving its workers
running when main returns and C++ static destruction begins. This can
cause segmentation faults or aborts during process exit. Retain the
handle in main and destroy the I/O context before shutting down the
client on both successful and failed operations.
Initialize both handles so cleanup is safe before connection, and return
the client handle immediately after creation so partial setup failures
also release it. Route setup and grace-object creation failures through
the common exit path without changing command dispatch or grace logic.
Those errors retain exit status 1 and now also print the common failure
diagnostic after cleanup.
Bug: https://github.com/canonical/microceph/issues/899
Change-Id: Ib8517f12a949ac4ab32570e0fc64032201f82dcf
Assisted-By: omp (openai-codex/gpt-6-astra)
Assisted-By: omp (openai-codex/gpt-6.1-sol)
Signed-off-by: John Ramsden <john.ramsden@canonical.com>
---
M src/tools/ganesha-rados-grace.c
1 file changed, 14 insertions(+), 7 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/99/1256299/1
To view, visit change 1256299. To unsubscribe, or for help writing mail filters, visit settings.