]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/PG: force rebuild of missing set on jewel upgrade
authorSage Weil <sage@redhat.com>
Wed, 9 Aug 2017 16:50:57 +0000 (12:50 -0400)
committerSage Weil <sage@redhat.com>
Thu, 10 Aug 2017 13:32:34 +0000 (09:32 -0400)
commit88649cb8d70b650e879f254aacd7e7e8f2ea6761
treece019d33145343e6d2435df517ab2a0e1672cfeb
parent55a983724959365602abac09a86f15c96591bf5e
osd/PG: force rebuild of missing set on jewel upgrade

Previously we were detecting the need to rebuild missing based on
whether the "divergent_priors" omap key was present.  Unfortunately,
jewel does not always set this, so it is not a reliable indicator.
(It only gets set if you actually have a divergent prior at some
point in the PG's life time on that OSD.)

Fix by using the info_struct_v on the PG to detect whether we need
to do the conversion.  We didn't bump the value when we adding
the missing persistence, but the fastinfo was also added during
the same period between jewel and kraken, so it will work just as
well.

Fixes: http://tracker.ceph.com/issues/20958
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit dd1a25218c5a1def02146edb2dce0d97a71e4436)
src/osd/PG.cc
src/osd/PGLog.h
src/tools/ceph_objectstore_tool.cc