From d58793d10d682fba2ceafa4d6a1668c4917be77f Mon Sep 17 00:00:00 2001 From: David Zafman Date: Mon, 6 Jul 2015 18:14:06 -0700 Subject: [PATCH] osd, tools: Always filter temp objects since not being exported Can't use object_locator_to_pg() directly with a temp object because the pool is negative. Signed-off-by: David Zafman (cherry picked from commit 557c6530a515cffacbaec439cabff8a079edbf5b) --- src/osd/osd_types.cc | 6 ++++++ src/tools/ceph_objectstore_tool.cc | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 29f4fc4cc53a1..292fc94df05ec 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -3127,6 +3127,12 @@ void pg_log_t::filter_log(spg_t import_pgid, const OSDMap &curmap, for (list::const_iterator i = in.log.begin(); i != in.log.end(); ++i) { + // Reject pg log entries for temporary objects + if (i->soid.is_temp()) { + reject.log.push_back(*i); + continue; + } + if (i->soid.nspace != hit_set_namespace) { object_t oid = i->soid.oid; object_locator_t loc(i->soid); diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index 1fcfe16ec8c95..28843c46f6fdb 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -1928,6 +1928,12 @@ void filter_divergent_priors(spg_t import_pgid, const OSDMap &curmap, for (divergent_priors_t::const_iterator i = in.begin(); i != in.end(); ++i) { + // Reject divergent priors for temporary objects + if (i->second.is_temp()) { + reject.insert(*i); + continue; + } + if (i->second.nspace != hit_set_namespace) { object_t oid = i->second.oid; object_locator_t loc(i->second); -- 2.39.5