]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commit
Objecter: respect higher epoch subscription in tick
authorNitzan Mordechai <nmordech@redhat.com>
Tue, 18 Nov 2025 09:37:48 +0000 (09:37 +0000)
committerNaveen Naidu <naveennaidu479@gmail.com>
Mon, 19 Jan 2026 14:01:43 +0000 (19:31 +0530)
commite1a1815bbac15d171e40591a0cb62cc65bbb1d99
treef5b58befdf36abf680b542b29f78e76402591740
parent402617507f66ff93826b678cb17436deb22bb09e
Objecter: respect higher epoch subscription in tick

The OSD and Objecter share the same MonClient. During preboot, a potential
race condition exists where the OSD subscribes to osdmap epoch X, while
the Objecter subscribes to epoch X - 1.

The Objecter's subscription overrides the OSD's subscription. Consequently,
the monitor ignores the request (as it believes the OSD already has the
older map), causing the OSD to hang during preboot.

To fix this, check if a higher epoch is already subscribed before calling
_maybe_request_map during Objecter::tick. If a higher epoch is found,
maintain the existing subscription.

Fixes: https://tracker.ceph.com/issues/71931
Signed-off-by: Nitzan Mordechai <nmordech@ibm.com>
(cherry picked from commit 30b3baba4e0e8641a7dbd10b8df5f00acdee204d)
src/mon/MonClient.h
src/mon/MonSub.h
src/osdc/Objecter.cc