From: Jason Dillaman Date: Wed, 18 Sep 2019 13:52:17 +0000 (-0400) Subject: osd/PrimaryLogPG: do not append outdata to TMAPUP ops X-Git-Tag: v15.1.0~1466^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=8871c5c688705171be8fca54727460895602a901;p=ceph-ci.git osd/PrimaryLogPG: do not append outdata to TMAPUP ops Write operations should not have data but TMAPUP incorrectly appends the previously read TMAP object to the outdata buferlist. Fixes: https://tracker.ceph.com/issues/41908 Signed-off-by: Jason Dillaman --- diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index eb06312d0a7..f9abc6967fc 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -4615,7 +4615,6 @@ int PrimaryLogPG::do_tmapup_slow(OpContext *ctx, bufferlist::const_iterator& bp, newop.op.extent.length = obl.length(); newop.indata = obl; do_osd_ops(ctx, nops); - osd_op.outdata.claim(newop.outdata); return 0; } @@ -4695,7 +4694,7 @@ int PrimaryLogPG::do_tmapup(OpContext *ctx, bufferlist::const_iterator& bp, OSDO last_in_key = key; dout(10) << "tmapup op " << (int)op << " key " << key << dendl; - + // skip existing intervening keys bool key_exists = false; while (have_next && !key_exists) { @@ -4803,7 +4802,6 @@ int PrimaryLogPG::do_tmapup(OpContext *ctx, bufferlist::const_iterator& bp, OSDO newop.op.extent.length = obl.length(); newop.indata = obl; do_osd_ops(ctx, nops); - osd_op.outdata.claim(newop.outdata); } } return result;