Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mimic: core: osds allows to partially start more than N+2 #29241

Merged
merged 2 commits into from Oct 7, 2019

Conversation

@smithfarm
Copy link
Contributor

smithfarm commented Jul 24, 2019

Record the require_osd_release value from the OSDMap in the 'meta' portion
of the osd's metadata that can be accessed without actually mounting the
OSD.  This will be useful as a safety gate to prevent you from mounting
an osd thet is too new that may make incompatible changes to the store.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 482cdca)

Conflicts:
	src/osd/OSD.cc
	src/osd/OSD.h
- ignore differences in surrounding context, as they do not seem relevant to
  the fix
@smithfarm smithfarm self-assigned this Jul 24, 2019
@smithfarm smithfarm added this to the mimic milestone Jul 24, 2019
@smithfarm smithfarm changed the title mimic: osds allows to partially start more than N+2 mimic: core: osds allows to partially start more than N+2 Jul 24, 2019
@smithfarm smithfarm requested review from rzarzynski, liewegas and tchaikov Jul 24, 2019
@smithfarm

This comment has been minimized.

Copy link
Contributor Author

smithfarm commented Jul 24, 2019

/home/jenkins-build/build/workspace/ceph-pull-requests/src/ceph_osd.cc: In function 'int main(int, const char**)':
/home/jenkins-build/build/workspace/ceph-pull-requests/src/ceph_osd.cc:475:33: error: 'ceph_release' was not declared in this scope
       require_osd_release + 2 < ceph_release()) {
                                 ^~~~~~~~~~~~
/home/jenkins-build/build/workspace/ceph-pull-requests/src/ceph_osd.cc:475:33: note: suggested alternative: 'ceph_mds_lease'
       require_osd_release + 2 < ceph_release()) {
                                 ^~~~~~~~~~~~
                                 ceph_mds_lease
src/CMakeFiles/ceph-osd.dir/build.make:62: recipe for target 'src/CMakeFiles/ceph-osd.dir/ceph_osd.cc.o' failed
make[3]: *** [src/CMakeFiles/ceph-osd.dir/ceph_osd.cc.o] Error 1
If we try to start up the objectstore, we may make writeable changes to
(say) rocksdb that are not backwards compatible.  This happens, for
example, if you start a mimic osd.  Even if the compatset checks fail,
rocksdb may have written something that is not backwards compatible.

Fixes: http://tracker.ceph.com/issues/38076
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 9f7713a)

Conflicts:
	src/ceph_osd.cc
- include common/version.h for ceph_release()
@smithfarm smithfarm force-pushed the smithfarm:wip-38206-mimic branch from 9813d03 to 4fec29e Jul 24, 2019
@yuriw

This comment has been minimized.

Copy link
Contributor

yuriw commented Oct 4, 2019

@jdurgin
jdurgin approved these changes Oct 7, 2019
@yuriw yuriw merged commit a1944f6 into ceph:mimic Oct 7, 2019
4 checks passed
4 checks passed
Docs: build check OK - docs built
Details
Signed-off-by all commits in this PR are signed
Details
Unmodified Submodules submodules for project are unmodified
Details
make check make check succeeded
Details
@smithfarm smithfarm deleted the smithfarm:wip-38206-mimic branch Oct 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.