]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/OSDMap: clear osd_info, osd_xinfo on osd deletion 6900/head
authorSage Weil <sage@redhat.com>
Fri, 11 Dec 2015 16:50:22 +0000 (11:50 -0500)
committerSage Weil <sage@redhat.com>
Fri, 11 Dec 2015 16:50:22 +0000 (11:50 -0500)
commit4e28f9e63644835c72ff19d445d40520ff54f8e5
tree1484e8874296271c2e8e52af060296c8e8aa32ee
parentc6cdc33432955b098214c1e29799c69e740dcc5e
osd/OSDMap: clear osd_info, osd_xinfo on osd deletion

If we destroy an OSD in the map, clear not just the uuid but also
all the metadata about it.

Specifically, we care about up_from, which can prevent a new
OSD from booting if it starts with a map prior to the deletion
when it sends it boot.  Specifically, the osd epoch may be 0 and
if the latest osd epoch is also small the osd decide it is "close
enough" to the latest epoch and sends the boot message.  In
practice this problem wouldn't surface on any cluster that isn't
brand new.

Note that this changes the result of applying an incremental.
As such, it will cause lots of old OSDs to request full maps
from the mon, spiking load during an upgrade.  This is as it
should be.

Fixes: #13988
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSDMap.cc