]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
mds: fix rank 0 marked damaged if stopping fails after Elid flush and log trimmed
authorethanwu <ethanwu@synology.com>
Thu, 11 Sep 2025 07:40:09 +0000 (15:40 +0800)
committerJos Collin <jcollin@redhat.com>
Sat, 4 Oct 2025 01:53:38 +0000 (07:23 +0530)
commit0a3445f2e83c93acc49f2b93a78b2a8f6c9123eb
tree461e465d73aaa834cb50fdeb33f731aad34fc791
parent2b2f4a7cd1b7f0c4ec0cf9964092d7ef6df76ca4
mds: fix rank 0 marked damaged if stopping fails after Elid flush and log trimmed

steps to reproduce
 ../src/vstart.sh --debug --new -x --localhost --bluestore
 ./bin/ceph tell mds.<rank 0> config set mds_kill_shutdown_at 10
 ./bin/ceph fs set <fs name> down true

wait for a few seconds and will see the following log from take-over mds
and rank 0 is marked damaged
2025-09-11T16:47:24.591+0800 785dabeaa6c0 -1 log_channel(cluster) log [ERR] : No subtrees found for root MDS rank!
2025-09-11T16:47:24.591+0800 785dabeaa6c0 5 mds.beacon.b set_want_state: up:rejoin -> down:damaged

During shutdown_pass after submitting Elid and trimming mdlog, mds log
will now have only ELid event which does nothing at replay.
After replay, no subtree is found.

Fix this by checking whther MDLog contains only one event.
If so, skip the subtree check for rank 0, and allow it to request
STATE_STOPPED just like the other ranks.

Fixes: https://tracker.ceph.com/issues/72983
Signed-off-by: ethanwu <ethanwu@synology.com>
(cherry picked from commit adb448b4f4e421f75275874f5a67c3a2ceb0214c)
src/mds/MDSRank.cc