From: Sage Weil Date: Sun, 18 Mar 2018 23:39:46 +0000 (-0500) Subject: Merge remote-tracking branch 'gh/mimic-dev2' X-Git-Tag: v13.1.0~536 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=038afcbc2ab0a3038560a2de3b9f97d25e2a20d4;p=ceph.git Merge remote-tracking branch 'gh/mimic-dev2' --- 038afcbc2ab0a3038560a2de3b9f97d25e2a20d4 diff --cc src/osd/ECBackend.cc index 7210cf61971,6e92775009b..2ad2e3563f2 --- a/src/osd/ECBackend.cc +++ b/src/osd/ECBackend.cc @@@ -938,7 -929,10 +938,11 @@@ void ECBackend::handle_sub_write tls.push_back(std::move(op.t)); tls.push_back(std::move(localt)); get_parent()->queue_transactions(tls, msg); + dout(30) << __func__ << " missing after" << get_parent()->get_log().get_missing().get_items() << dendl; + if (op.at_version != eversion_t()) { + // dummy rollforward transaction doesn't get at_version (and doesn't advance it) + get_parent()->op_applied(op.at_version); + } } void ECBackend::handle_sub_read( diff --cc src/osd/PrimaryLogPG.cc index 13adf8330b8,bc27e844c24..3035db7fa43 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@@ -10348,9 -10244,8 +10365,10 @@@ void PrimaryLogPG::submit_log_entries new OnComplete{this, rep_tid, get_osdmap()->get_epoch()}); int r = osd->store->queue_transaction(ch, std::move(t), NULL); assert(r == 0); + op_applied(info.last_update); }); + + calc_trim_to(); } void PrimaryLogPG::cancel_log_updates() diff --cc src/osd/PrimaryLogPG.h index c9a8f880e45,dfa584b1ea3..2a034371f2d --- a/src/osd/PrimaryLogPG.h +++ b/src/osd/PrimaryLogPG.h @@@ -417,9 -414,22 +417,11 @@@ public append_log(logv, trim_to, roll_forward_to, t, transaction_applied); } + void op_applied(const eversion_t &applied_version) override; + bool should_send_op( pg_shard_t peer, - const hobject_t &hoid) override { - if (peer == get_primary()) - return true; - assert(peer_info.count(peer)); - bool should_send = - hoid.pool != (int64_t)info.pgid.pool() || - hoid <= last_backfill_started || - hoid <= peer_info[peer].last_backfill; - if (!should_send) - assert(is_backfill_targets(peer)); - return should_send; - } + const hobject_t &hoid) override; bool pg_is_undersized() const override { return is_undersized();