summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-02-10 10:57:12 -0800
committerSamuel Just <sam.just@inktank.com>2013-03-19 10:30:00 -0700
commitaa74fabd90b776e9938f3d59ea5ed04bd4027dbb (patch)
tree89e155af5a4011312ea317afbfad25cc04655e08
parenta30903c6adaa023587d3147179d6038ad37ca520 (diff)
downloadceph-aa74fabd90b776e9938f3d59ea5ed04bd4027dbb.tar.gz
osd: improve debug output on snap collections
Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com> (cherry picked from commit 8b05492ca5f1479589bb19c1ce058b0d0988b74f)
-rw-r--r--src/osd/ReplicatedPG.cc2
-rw-r--r--src/osd/osd_types.cc16
2 files changed, 15 insertions, 3 deletions
diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc
index 938715dbf08..3e75fe2c7dc 100644
--- a/src/osd/ReplicatedPG.cc
+++ b/src/osd/ReplicatedPG.cc
@@ -1438,7 +1438,7 @@ ReplicatedPG::RepGather *ReplicatedPG::trim_object(const hobject_t &coid,
dout(10) << "removing coid " << coid << " from snap collections "
<< to_remove << " and adding to snap collections "
- << to_create << dendl;
+ << to_create << " for final snaps " << coi.snaps << dendl;
ctx->log.push_back(pg_log_entry_t(pg_log_entry_t::MODIFY, coid, coi.version, coi.prior_version,
osd_reqid_t(), ctx->mtime));
diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc
index 97b23e35d92..ce28235ee9f 100644
--- a/src/osd/osd_types.cc
+++ b/src/osd/osd_types.cc
@@ -1781,8 +1781,20 @@ void pg_log_entry_t::generate_test_instances(list<pg_log_entry_t*>& o)
ostream& operator<<(ostream& out, const pg_log_entry_t& e)
{
- return out << e.version << " (" << e.prior_version << ") "
- << e.get_op_name() << ' ' << e.soid << " by " << e.reqid << " " << e.mtime;
+ out << e.version << " (" << e.prior_version << ") "
+ << e.get_op_name() << ' ' << e.soid << " by " << e.reqid << " " << e.mtime;
+ if (e.snaps.length()) {
+ vector<snapid_t> snaps;
+ bufferlist c = e.snaps;
+ bufferlist::iterator p = c.begin();
+ try {
+ ::decode(snaps, p);
+ } catch (...) {
+ snaps.clear();
+ }
+ out << " snaps " << snaps;
+ }
+ return out;
}