From: Radoslaw Zarzynski Date: Thu, 13 Oct 2022 11:22:32 +0000 (+0000) Subject: crimson/osd: resolve_oid() looks in clone_snaps by requested snap ID X-Git-Tag: v18.1.0~336^2~37^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=2d33a07afa4be0ad7177a2752f0790e6459ced46;p=ceph-ci.git crimson/osd: resolve_oid() looks in clone_snaps by requested snap ID Before the patch the method was looking for `lower_bound(oid.snap)` from `SnapSet::clones` which leads to reading from head instead of returning the `ENOENT` expected in `TestLibRBD.TestIOToSnapshot`. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index 2c826bffd0a..5f885802853 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -1004,7 +1004,9 @@ std::optional PG::resolve_oid( if (std::find( citer->second.begin(), citer->second.end(), - *clone) == citer->second.end()) { + oid.snap) == citer->second.end()) { + logger().debug("{} {} does not contain {} -- DNE", + __func__, ss.clone_snaps, oid.snap); return std::nullopt; } else { auto soid = oid;