]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
Objecter: respect higher epoch subscription in tick 66304/head
authorNitzan Mordechai <nmordech@redhat.com>
Tue, 18 Nov 2025 09:37:48 +0000 (09:37 +0000)
committerNitzan Mordechai <nmordech@redhat.com>
Wed, 26 Nov 2025 09:13:57 +0000 (09:13 +0000)
commit30b3baba4e0e8641a7dbd10b8df5f00acdee204d
tree5db8aa6a2cf1c086aaef57c267f55a972a8efda5
parent744284811c8e99e93e5952562d7d742339c7f5ee
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>
src/mon/MonClient.h
src/mon/MonSub.h
src/osdc/Objecter.cc