]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PrimaryLogPG: avoid dereferencing invalid complete_to 23951/head
authorxie xingguo <xie.xingguo@zte.com.cn>
Mon, 3 Sep 2018 07:37:36 +0000 (15:37 +0800)
committerNathan Cutler <ncutler@suse.com>
Thu, 6 Sep 2018 05:47:10 +0000 (07:47 +0200)
For the auto-repair (EIO caused) case, we will not reinitialize
**complete_to** (because last_complete is equal to last_update!)
and hence there is chance that **complete_to** should aleady
point to **log.end()** before we call recover_got.

We could simply drop it here as we (already) logged the **complete_to**
iterator change in a more compatible way a few lines below.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit 69a2cc35840939436da09691ca62476d7f599de4)

src/osd/PrimaryLogPG.cc

index 054fd69f5d50e1b379ee069e7e6d300463199f69..e65171eec1dd94c1e2e1bc0fce4581661207a7ab 100644 (file)
@@ -11441,8 +11441,6 @@ void PrimaryLogPG::_applied_recovered_object_replica()
 void PrimaryLogPG::recover_got(hobject_t oid, eversion_t v)
 {
   dout(10) << "got missing " << oid << " v " << v << dendl;
-  dout(10) << __func__ << " complete_to "
-           << pg_log.get_log().complete_to->version << dendl;
   pg_log.recover_got(oid, v, info);
   if (pg_log.get_log().complete_to != pg_log.get_log().log.end()) {
     dout(10) << "last_complete now " << info.last_complete