]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd: Only scan for omap corruption once
authorDavid Zafman <dzafman@redhat.com>
Wed, 13 Sep 2017 00:17:13 +0000 (17:17 -0700)
committerDavid Zafman <dzafman@redhat.com>
Wed, 13 Sep 2017 21:06:25 +0000 (14:06 -0700)
commit8805ef53424e30fd3f24ee38f5a6bdd9e6dd8641
tree1b1c9fe00f6997295baa670f82ab8aa8e559aa78
parent3e4d68640cc43efc0cf10ea8119b3aa583b7f36b
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>
src/os/ObjectMap.h
src/os/filestore/DBObjectMap.cc
src/os/filestore/DBObjectMap.h
src/tools/ceph_osdomap_tool.cc