// issue replica writes
tid_t rep_tid = osd->get_tid();
RepGather *repop = new_repop(ctx, obc, noop, rep_tid);
+ repop->v = ctx->at_version;
// note: repop now owns ctx AND ctx->op
dout(10) << " removing " << *repop << dendl;
assert(!repop_queue.empty());
dout(20) << " q front is " << *repop_queue.front() << dendl;
- assert(repop_queue.front() == repop);
+ if (repop_queue.front() != repop) {
+ dout(0) << " removing " << *repop << dendl;
+ dout(0) << " q front is " << *repop_queue.front() << dendl;
+ assert(repop_queue.front() == repop);
+ }
repop_queue.pop_front();
repop_map.erase(repop->rep_tid);
repop->put();
xlist<RepGather*>::item queue_item;
int nref;
+ eversion_t v;
+
OpContext *ctx;
ObjectContext *obc;
out << "repgather(" << &repop
<< (repop.applying ? " applying" : "")
<< (repop.applied ? " applied" : "")
+ << " " << repop.v
<< " rep_tid=" << repop.rep_tid
<< " wfack=" << repop.waitfor_ack
//<< " wfnvram=" << repop.waitfor_nvram