Merge pull request #8810 from xiexingguo/xxg-wip-fixgotfullmap

osd: fix problematic got_full_map() logic

test run http://pulpito.ceph.com/yuriw-2016-05-07_09:11:04-rados-wip-yuri-testing---basic-smithi/
This commit is contained in:
Yuri Weinstein 2016-05-09 09:09:26 -07:00
commit e4fa44cd48

View File

@ -5031,23 +5031,18 @@ void OSD::got_full_map(epoch_t e)
<< ", ignoring" << dendl;
return;
}
if (e > requested_full_first) {
if (e >= requested_full_last) {
dout(10) << __func__ << " " << e << ", requested " << requested_full_first
<< ".." << requested_full_last << ", resetting" << dendl;
requested_full_first = requested_full_last = 0;
return;
}
if (requested_full_first == requested_full_last) {
dout(10) << __func__ << " " << e << ", requested " << requested_full_first
<< ".." << requested_full_last
<< ", now done" << dendl;
requested_full_first = requested_full_last = 0;
} else {
dout(10) << __func__ << " " << e << ", requested " << requested_full_first
<< ".." << requested_full_last
<< ", still need more" << dendl;
++requested_full_first;
}
requested_full_first = e + 1;
dout(10) << __func__ << " " << e << ", requested " << requested_full_first
<< ".." << requested_full_last
<< ", still need more" << dendl;
}
void OSD::requeue_failures()