]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crimson/osd: skip PGAdvanceMap on a deleted PG 68814/head
authorAishwarya Mathuria <amathuri@redhat.com>
Fri, 8 May 2026 07:32:01 +0000 (13:02 +0530)
committerAishwarya Mathuria <amathuri@redhat.com>
Fri, 8 May 2026 10:51:01 +0000 (10:51 +0000)
commit6668ae20239bb8202dc5d2e11b7e2723553aebdd
tree5b2d81b7a7bdd41c27cff15f1cdf0edaa2ce1a0c
parentdacf8cbc90fe02291b5133aaf3a9874ca02e1dc4
crimson/osd: skip PGAdvanceMap on a deleted PG

A PGAdvanceMap queued by broadcast_map_to_pgs can sit behind in-flight
DeleteSome events on the peering pipeline holding a Ref<PG>.  When it
finally runs, the collection has already been removed in seastore and
PGAdvanceMap drives handle_advance_map / check_for_splits on a stale
PG thereby issuing ops on a collection that no longer exists, crashing the OSD.

Following Classic OSD, set peering_state.set_delete_complete() in PG::do_delete_work's
final batch and bail out of PGAdvanceMap::start when pg->is_deleted() is true.

Fixes: https://tracker.ceph.com/issues/76447
Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>
src/crimson/osd/osd_operations/pg_advance_map.cc
src/crimson/osd/pg.cc
src/crimson/osd/pg.h