summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2012-01-27 10:40:14 -0800
committerSage Weil <sage@newdream.net>2012-01-27 10:40:14 -0800
commit6453123cfa5066d75b0b6f678c8f3fe3218da3a0 (patch)
treee19bee24b5c68bc494ffae310ecccbeda4998880
parent0cc26a94c8b9724588951e19b264ad26146685a3 (diff)
downloadceph-6453123cfa5066d75b0b6f678c8f3fe3218da3a0.tar.gz
objecter: warn when OSD returns mismatched op vector
The osd shouldn't do this (even though we should tolerate it). Signed-off-by: Sage Weil <sage@newdream.net> Reviewed-by: Greg Farnum <gregory.farnum@dreamhost.com>
-rw-r--r--src/osdc/Objecter.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc
index ddf60e52871..43b41da1cbc 100644
--- a/src/osdc/Objecter.cc
+++ b/src/osdc/Objecter.cc
@@ -1177,6 +1177,12 @@ void Objecter::handle_osd_op_reply(MOSDOpReply *m)
// per-op result demuxing
vector<OSDOp> out_ops;
m->claim_ops(out_ops);
+
+ if (out_ops.size() != op->ops.size())
+ ldout(cct, 0) << "WARNING: tid " << op->tid << " reply ops " << out_ops
+ << " != request ops " << op->ops
+ << " from " << m->get_source_inst() << dendl;
+
vector<bufferlist*>::iterator pb = op->out_bl.begin();
vector<int*>::iterator pr = op->out_rval.begin();
vector<Context*>::iterator ph = op->out_handler.begin();