]> git.apps.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 02:07:48 +0000 (22:07 -0400)
commitdd1a25218c5a1def02146edb2dce0d97a71e4436
tree39772cc1b0927cb648120421b885871bd79bf68b
parent946c59bb38706889625924d877bcbd90735e94a3
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>
src/osd/PG.cc
src/osd/PGLog.h
src/tools/ceph_objectstore_tool.cc