Merge pull request #19988 from liewegas/wip-22673

osd: only exit if *latest* map(s) say we are destroyed

Reviewed-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
Kefu Chai 2018-01-23 15:48:11 +08:00 committed by GitHub
commit 04d90a7d2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5404,8 +5404,12 @@ void OSD::_preboot(epoch_t oldest, epoch_t newest)
if (osdmap->get_epoch() == 0) {
derr << "waiting for initial osdmap" << dendl;
} else if (osdmap->is_destroyed(whoami)) {
derr << "osdmap says I am destroyed, exiting" << dendl;
exit(0);
derr << "osdmap says I am destroyed" << dendl;
// provide a small margin so we don't livelock seeing if we
// un-destroyed ourselves.
if (osdmap->get_epoch() > newest - 1) {
exit(0);
}
} else if (osdmap->test_flag(CEPH_OSDMAP_NOUP) || osdmap->is_noup(whoami)) {
derr << "osdmap NOUP flag is set, waiting for it to clear" << dendl;
} else if (!osdmap->test_flag(CEPH_OSDMAP_SORTBITWISE)) {