Yuri Weinstein [Wed, 8 May 2019 16:15:16 +0000 (09:15 -0700)]
qa/test: new suite to test `jewel` clients on `nautilus` cluster
This suite will run on nautilus relases only and we will keep running older suite client-upgrade-jewel
on previous releases
(Similar to https://github.com/ceph/ceph/pull/27934)
This has been properly fixed in luminous but hasn't been backported and
the patch needed a manual update. This is a little bit of a mashup between
what I found in the luminous code and what the patch for Hammer discussed in
http://tracker.ceph.com/issues/6101 did.
Fixes: http://tracker.ceph.com/issues/6101 Signed-off-by: Christian Theune <ct@flyingcircus.io>
Paul Emmerich [Sun, 11 Mar 2018 00:26:45 +0000 (01:26 +0100)]
mon: handle bad snapshot removal reqs gracefully
Snapshot deletion requests on snap ids larger than the snap_seq of
the pool will leave the pool in a state with snap_seq being less
than max(removed_snaps).
This is bad because further deletion requests to a pool in this state
might crash the mon in some cases: the deletion also inserts the new
snap_seq into the removed_snaps set -- which might already exist
in this case and trigger an assert.
Such bad requests will be generated by rbd clients without a fix for
issue https://tracker.ceph.com/issues/21567.
The change in OSDMonitor prevents pools from getting into this state
and may prevent old broken clients from incorrectly deleting snaps.
The change in osd_types avoids a crash if a pool is already in this
state.
Fixes: https://tracker.ceph.com/issues/18746 Signed-off-by: Paul Emmerich <paul.emmerich@croit.io>
(cherry picked from commit f42a6ba4c37cb10869718ec296352ae55254b44a)
Tianshan Qu [Thu, 24 May 2018 13:02:39 +0000 (21:02 +0800)]
rgw: fix index update in dir_suggest_changes
1. do nothing if the index is no longer exists in cls
rgw_dir_suggest_changes, whatever the pending state we got in
check_disk_state, to avoid recreate index when list race with
delete. the situations:
* if dir_suggest_changes is done before complete op in Delete, the
index will be deleted finally.
* if dir_suggest_changes is done after complete op in Delete, the
index will no exists and do nothing.
2. stale pending write op's index is existent but exists field is
false, so remove cur_disk.exists check in op CEPH_RGW_UPDATE, make
it recover the situation again.
Sage Weil [Fri, 25 May 2018 15:59:19 +0000 (10:59 -0500)]
auth/cephx: add authorizer challenge
Allow the accepting side of a connection to reject an initial authorizer
with a random challenge. The connecting side then has to respond with an
updated authorizer proving they are able to decrypt the service's challenge
and that the new authorizer was produced for this specific connection
instance.
The accepting side requires this challenge and response unconditionally
if the client side advertises they have the feature bit. Servers wishing
to require this improved level of authentication simply have to require
the appropriate feature.
- lots of override annotation conflicts
- _refused() callbacks no present in jewel
- lots of msg/async conflicts (code has changed a fair bit)
- we inherited some upstream rotating keys checks, see f159a093ecab4aa53693ec106c00d5ecb383c467
before this change, it is a plain .a archive. because MDSAuthCaps.cc is
included by both libmon.a and libmds.la, automake complains that
src/Makefile.am: error: object 'mds/MDSAuthCaps.$(OBJEXT)' created both
with libtool and without
so we need to consolidate them. as most of the convenience libraries are
are created using libtool. to be more consistent, i am chaning libmon.a
to libmon.la.
Signed-off-by: Kefu Chai <kchai@redhat.com>
Conflicts:
src/Makefile-env.am
src/mds/Makefile-server.am: this change is not cherry-picked from
master. as we switched from autotools to cmake since luminous.
lijing [Fri, 5 Jan 2018 09:44:57 +0000 (17:44 +0800)]
mon: expand cap validity check for mgr, osd, mds
Also strenghen the check to declare an unknown cap type as invalid.
Note that this means that in a mixed-version cluster, an older mon
would apply the syntax check for the older caps, even if the (say) OSDs
are newer and could parse something different. This is judged to be fine:
it is not unreasonable to ask for the mons *and* daemons to be upgraded
before using the new cap syntax or feature.
Kefu Chai [Wed, 23 May 2018 02:48:44 +0000 (10:48 +0800)]
makefile: bump java source option from 5 to 6
this kills the errors like
error: Source option 5 is no longer supported. Use 6 or later.
error: Target option 1.5 is no longer supported. Use 1.6 or later.
Signed-off-by: Kefu Chai <kchai@redhat.com>
Conflicts:
src/java/Makefile.am: this change is not cherry-picked from
master. as we've moved to java 8 in master. see df27ed3a .
Kefu Chai [Wed, 23 May 2018 02:45:39 +0000 (10:45 +0800)]
makefile: use javac for creating JNI headers
JDK 1.10 does not offer javah anymore, so we need to use "javac -h"
instead.
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit edc504b9d446cc1739f3e8e087914cfe66d6cac3)
Conflicts: configure.ac:
src/java/Makefile.am: we don't use cmake back in jewel, so
port the cmake changes to autotools.
Fixes: http://tracker.ceph.com/issues/22530 Signed-off-by: Yang Honggang <joseph.yang@xtaotech.com>
(cherry picked from commit c24f2baec968ff66e792991d829591505ffba3ae)
Conflicts:
qa/standalone/mon/osd-pool-create.sh: jewel does not have
qa/standalone tests by then. and in jewel, "ruleset" is not renamed to
"rule" yet.
src/mon/OSDMonitor.cc
src/pybind/mgr/localpool/module.py: trivial resolution
Avoid a second nested lock on client lock. As a result, drop unused function ll_get_inodeno(). Fixes: https://tracker.ceph.com/issues/23815 Signed-off-by: Supriti Singh <supriti.singh@suse.com>
(cherry picked from commit 7be8d559a11507255f847ce6279d23abaabde70a)
Conflicts:
src/client/Client.cc (dropped function call ll_get_inodeno(in))
rgw: rgw-rados, rgw-admin add an option to recalculate user stats
Adds a method in rgw-rados to reset user stats calling the earlier implemented
cls user reset stats.
In rgw-admin we add an option called --reset-stats that invokes this method.
This is an implementation of reset user stats, that recalculates the user stats
purely based on the values of bucket entries in user.buckets object. This is
helpful in cases when user stats has been improperly set in case of manual
resharding etc.
* conflicts:
cls_user.cc:
jewel only cls fixes, truncated is not a part of omap get vals, so iterating
over the range by checking the output of omap_get_vals and continuing.
cls_user_ops.h:
explicit ::encode/::decode
Alfredo Deza [Fri, 18 Aug 2017 16:05:03 +0000 (12:05 -0400)]
doc update template call for toctree
Up until version 1.1.3 of Sphinx, this call would show hidden toctree
entries. Most of Ceph's toctree's are hidden, so when the version of
Sphinx was bumped to >1.6, the sidebar stopped showing entries
David Zafman [Wed, 28 Mar 2018 17:21:39 +0000 (10:21 -0700)]
osd: Fix stale scrub stats when a primary takes over
Fixes: http://tracker.ceph.com/issues/23267 Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 5cfb8241f482ed53c63bb97262425b2acb733d7d)
Conflicts:
src/osd/PG.cc (trivial)
test/Makefile.am (Add to make check for Jewel)
test/osd/CMakeLists.txt (Add to make check for Jewel)
src/test/osd/osd-scrub-test.sh (from qa/standalone/scrub/osd-scrub-test.sh)
Different location of ceph-helpers.sh
No manager so remove run_mgr
Remove default rbd pool
Use 4 OSDs because remapped PG doesn't go clean
Patrick Donnelly [Tue, 28 Nov 2017 23:01:32 +0000 (15:01 -0800)]
client: quit on failed remount during dentry invalidate test
Fixes: http://tracker.ceph.com/issues/22269 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 5b2b1d14468c290c56ee6c95ea557c99464e0098)
Conflicts:
PendingReleaseNotes - put the release note under 10.2.11
src/ceph_fuse.cc - changed order of client_try_dentry_invalidate and
can_invalidate_dentries assignments to match master, and use jewel
form of g_conf for accessing config option values
src/client/Client.cc - code being replaced by _do_remount() calls is
different in jewel, and use jewel convention for accessing config
option values
src/common/legacy_config_opts.h - file does not exist in jewel
src/common/options.cc - file does not exit in jewel; made the changes
manually in src/common/config_opts.h
rgw: If use 'copy part' without 'x-amz-copy-source-range',
it will copy an entire source object
Signed-off-by: Malcolm Lee <fengxueyu35@126.com>
(cherry picked from commit 753b3a7)
Conflicts:
1. in original commit, copy_source is std::string, jewel
version is const char *.
2. in original commit, url_decode take only one param,
jewel version take 2 params.
3. in original commit, get_obj_state take 6 params, jewel
version takes 4 params.