From: Matan Breizman Date: Tue, 20 Jun 2023 17:51:52 +0000 (+0000) Subject: crimson/osd/osd_operations/pg_advance_map: 'from' epoch may vary between PGS explanation X-Git-Tag: v19.0.0~986^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=ba519f5e72350e86647b7d9bc40fc2d26d908da3;p=ceph-ci.git crimson/osd/osd_operations/pg_advance_map: 'from' epoch may vary between PGS explanation Signed-off-by: Matan Breizman --- diff --git a/src/crimson/osd/osd_operations/pg_advance_map.cc b/src/crimson/osd/osd_operations/pg_advance_map.cc index cd2ef615b41..7a9b0ffb45f 100644 --- a/src/crimson/osd/osd_operations/pg_advance_map.cc +++ b/src/crimson/osd/osd_operations/pg_advance_map.cc @@ -65,6 +65,15 @@ seastar::future<> PGAdvanceMap::start() return enter_stage<>( pg->peering_request_pg_pipeline.process ).then([this] { + /* + * PGAdvanceMap is scheduled at pg creation and when + * broadcasting new osdmaps to pgs. We are not able to serialize + * between the two different PGAdvanceMap callers since a new pg + * will get advanced to the latest osdmap at it's creation. + * As a result, we may need to adjust the PGAdvance operation + * 'from' epoch. + * See: https://tracker.ceph.com/issues/61744 + */ from = pg->get_osdmap_epoch(); auto fut = seastar::now(); if (do_init) {