From c5d129b526fe3b55039c9c7eadec9311a7ea72b5 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 13 Jun 2017 16:46:41 -0400 Subject: [PATCH] osd/SnapMapper: debug keys inserted, removed, and iterated Hunting bug http://tracker.ceph.com/issues/19943 Signed-off-by: Sage Weil --- src/osd/SnapMapper.cc | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/osd/SnapMapper.cc b/src/osd/SnapMapper.cc index d4c393120e2..81c54851004 100644 --- a/src/osd/SnapMapper.cc +++ b/src/osd/SnapMapper.cc @@ -166,6 +166,11 @@ void SnapMapper::clear_snaps( assert(check(oid)); set to_remove; to_remove.insert(to_object_key(oid)); + if (g_conf->subsys.should_gather(ceph_subsys_osd, 20)) { + for (auto& i : to_remove) { + dout(20) << __func__ << " rm " << i << dendl; + } + } backend.remove_keys(to_remove, t); } @@ -180,6 +185,11 @@ void SnapMapper::set_snaps( ::encode(in, bl); to_set[to_object_key(oid)] = bl; dout(20) << __func__ << " " << oid << " " << in.snaps << dendl; + if (g_conf->subsys.should_gather(ceph_subsys_osd, 20)) { + for (auto& i : to_set) { + dout(20) << __func__ << " set " << i.first << dendl; + } + } backend.set_keys(to_set, t); } @@ -214,6 +224,11 @@ int SnapMapper::update_snaps( to_remove.insert(to_raw_key(make_pair(*i, oid))); } } + if (g_conf->subsys.should_gather(ceph_subsys_osd, 20)) { + for (auto& i : to_remove) { + dout(20) << __func__ << " rm " << i << dendl; + } + } backend.remove_keys(to_remove, t); return 0; } @@ -240,6 +255,11 @@ void SnapMapper::add_oid( ++i) { to_add.insert(to_raw(make_pair(*i, oid))); } + if (g_conf->subsys.should_gather(ceph_subsys_osd, 20)) { + for (auto& i : to_add) { + dout(20) << __func__ << " set " << i.first << dendl; + } + } backend.set_keys(to_add, t); } @@ -259,6 +279,8 @@ int SnapMapper::get_next_objects_to_trim( while (out->size() < max) { pair next; r = backend.get_next(pos, &next); + dout(20) << __func__ << " get_next(" << pos << ") returns " << r + << " " << next << dendl; if (r != 0) { break; // Done } @@ -270,6 +292,7 @@ int SnapMapper::get_next_objects_to_trim( assert(is_mapping(next.first)); + dout(20) << __func__ << " " << next.first << dendl; pair next_decoded(from_raw(next)); assert(next_decoded.first == snap); assert(check(next_decoded.second)); @@ -313,6 +336,11 @@ int SnapMapper::_remove_oid( ++i) { to_remove.insert(to_raw_key(make_pair(*i, oid))); } + if (g_conf->subsys.should_gather(ceph_subsys_osd, 20)) { + for (auto& i : to_remove) { + dout(20) << __func__ << " rm " << i << dendl; + } + } backend.remove_keys(to_remove, t); return 0; } -- 2.39.5