]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async: clear_payload when requeue_sent. 30211/head
authorJianpeng Ma <jianpeng.ma@intel.com>
Fri, 6 Sep 2019 08:18:13 +0000 (16:18 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Tue, 10 Sep 2019 03:09:55 +0000 (11:09 +0800)
If requeue_sent becasue replace, ther connection maybe change. And
Message in sent already encoded. So we should clear payload.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/msg/async/ProtocolV1.cc
src/msg/async/ProtocolV2.cc

index 2c7121a9c80dea0d23ee196843959f0a8d8cdd74..a55505d5e6c57b8d566163b1f76a7c3608fe3b01 100644 (file)
@@ -1206,6 +1206,7 @@ void ProtocolV1::requeue_sent() {
     sent.pop_back();
     ldout(cct, 10) << __func__ << " " << *m << " for resend "
                    << " (" << m->get_seq() << ")" << dendl;
+    m->clear_payload();
     rq.push_front(make_pair(bufferlist(), m));
   }
 }
index 7e98f55d6688ad60db7c5b6128faa225ee570f06..45a463c9ec65eab31cba2c0d61d6596f99769151 100644 (file)
@@ -195,6 +195,7 @@ void ProtocolV2::requeue_sent() {
     ldout(cct, 5) << __func__ << " requeueing message m=" << m
                   << " seq=" << m->get_seq() << " type=" << m->get_type() << " "
                   << *m << dendl;
+    m->clear_payload();
     rq.emplace_front(out_queue_entry_t{false, m});
   }
 }