From 2d33a07afa4be0ad7177a2752f0790e6459ced46 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Thu, 13 Oct 2022 11:22:32 +0000 Subject: [PATCH] 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 --- src/crimson/osd/pg.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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; -- 2.39.5