From: songweibin Date: Tue, 24 Apr 2018 08:30:01 +0000 (+0800) Subject: osd/PGLog: fix sanity check against **complete-to** iter X-Git-Tag: v13.1.0~94^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7a68c2ec1753f92c9b0cd77e94c280b96c4bc7a8;p=ceph.git osd/PGLog: fix sanity check against **complete-to** iter Signed-off-by: songweibin --- diff --git a/src/osd/PGLog.h b/src/osd/PGLog.h index e3035bc0d75a..2ca41cba6f0c 100644 --- a/src/osd/PGLog.h +++ b/src/osd/PGLog.h @@ -772,21 +772,21 @@ public: void reset_complete_to(pg_info_t *info) { log.complete_to = log.log.begin(); + assert(log.complete_to != log.log.end()); auto oldest_need = missing.get_oldest_need(); if (oldest_need != eversion_t()) { while (log.complete_to->version < oldest_need) { - assert(log.complete_to != log.log.end()); ++log.complete_to; + assert(log.complete_to != log.log.end()); } } - assert(log.complete_to != log.log.end()); + if (!info) + return; if (log.complete_to == log.log.begin()) { - if (info) - info->last_complete = eversion_t(); + info->last_complete = eversion_t(); } else { --log.complete_to; - if (info) - info->last_complete = log.complete_to->version; + info->last_complete = log.complete_to->version; ++log.complete_to; } }