]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: set objecter.osdmap when starts 10725/head
authorKefu Chai <kchai@redhat.com>
Mon, 15 Aug 2016 07:42:29 +0000 (15:42 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 16 Aug 2016 01:19:39 +0000 (09:19 +0800)
commit1515e08e7d425f01d2e9d02c34b2ae40cdf2611a
treecf917bc5ba63d5b7125fb88348a9479e19940523
parent550814900ebca9dd89e088b9abe24f66eb5e3e6d
osd: set objecter.osdmap when starts

if any OSD is full or the pause flag is set in cluster, objecter will
always try to subscribe the next osdmap using the mon client shared with
OSD. but if the OSD's osdmap is very far behind on osd maps due to some
reasons, `MonClient::sub_want_increment()` will reject the subscribe
request from OSD, because it's asking for older maps while the mon client
is about to send the request from objecter for the *next* osdmap.

so we need to update objecter with the latest local osdmap, so it is
able to skip the new osdmaps if OSD needs to catch up with the cluster
first.

Fixes: http://tracker.ceph.com/issues/17023
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/osd/OSD.cc
src/osdc/Objecter.cc
src/osdc/Objecter.h