]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crimson/osd: complete PGAdvanceMap's pg-deleted path properly 68823/head
authorKefu Chai <k.chai@proxmox.com>
Sun, 17 May 2026 10:06:04 +0000 (18:06 +0800)
committerKefu Chai <k.chai@proxmox.com>
Sun, 17 May 2026 11:18:14 +0000 (19:18 +0800)
commitcc0dc343a483eabf4a244369dd79409fdc4f663c
tree9c385c12b13b4eb3d1ca65ba54973a88e7738222
parent9905c13b2d6dfaec2a6f8fcc40dc2ad60e431950
crimson/osd: complete PGAdvanceMap's pg-deleted path properly

When the pg has been deleted while PGAdvanceMap was queued, start()
takes an early return and skips the map-advance loop. The PeeringCtx
handed to the operation may already carry a transaction and queued
peering messages, so returning without calling complete_rctx() would
drop them. Dispatch the rctx before bailing out.

Also leave the PGPeeringPipeline::process stage via handle.complete()
instead of relying on the exit_handle defer's handle.exit(). The
pg-deleted path is a graceful completion, not an op failure, so it
should match the normal completion path; handle.exit() is documented
for the failure case only.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
src/crimson/osd/osd_operations/pg_advance_map.cc