]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: Only scan for omap corruption once 17889/head
authorDavid Zafman <dzafman@redhat.com>
Wed, 13 Sep 2017 00:17:13 +0000 (17:17 -0700)
committerNathan Cutler <ncutler@suse.com>
Thu, 5 Oct 2017 14:44:38 +0000 (16:44 +0200)
commitb84803d6092667631527b8b37000cac6447e0b84
tree4a4e37782b7bced4e9c6644977c73b1a31744fb9
parentd0ea152865eeff63cf49e137f5ac342ec6725a6a
osd: Only scan for omap corruption once

Before
  state 2: Can have complete tables (some may be bad)
state 3: Never had complete tables
After
  state 2: Can have complete tables (some may be bad)
state 3 with legacy: Can have complete tables (bad ones are cleared)
state 3: Never had complete tables

Once OSDs boot with this change you can't downgrade to a previous release.
If someone does downgrade they could have unstable OSDs that hit assert(state.v < 3).
The following command run after shutting down the cluster but before downgrading
ceph packages would be a way to fix this.

ceph-osdomap-tool --omap-path ... --command resetv2

Fixes: http://tracker.ceph.com/issues/21328
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 8805ef53424e30fd3f24ee38f5a6bdd9e6dd8641)
src/os/ObjectMap.h
src/os/filestore/DBObjectMap.cc
src/os/filestore/DBObjectMap.h
src/tools/ceph_osdomap_tool.cc