Nathan Cutler [Sat, 26 Aug 2017 08:06:25 +0000 (10:06 +0200)]
librbd: clean up object map update interface, revisited
In master, the "batch update" change [1] was merged before the "order
concurrent updates" [2], while in jewel the latter is already
backported [3]. A backport of [1] to jewel was attempted, and was
necessarily applied on top of [3] - i.e. in the reverse order compared
to how the commits went into master. This reverse ordering caused the
automated cherry-pick to miss some parts of [1] which this commit is
adding manually.
Venky Shankar [Sat, 15 Oct 2016 11:48:30 +0000 (17:18 +0530)]
librbd: batch ObjectMap updations upon trim
Shrinking a clone which has snapshots and does not share
majority of objects with its parent (i.e., there are less
objects to be copied up) involves huge number of object
map updates -- two (pre, post) per object. This results
in lots of requests to be send to OSDs especially when
trimming a gigantus image. This situation can be optimized
by sending batch ObjectMap updates for an object range
thereby significantly cutting down OSD traffic resulting
in faster trim times.
tests: upgrade:client-upgrade/firefly-client-x: drop CentOS
The RBD suite needs ceph-cm-ansible to install qemu-kvm on CentOS, but doing
that breaks the firefly install on CentOS because:
1. the qemu-kvm that gets installed is from hammer (0.94.5)
2. qemu-kvm brings in librados2, librbd1 as dependencies
As a result, the hammer librados2 and librbd1 are installed on the test nodes
even before the teuthology install task starts. When it does start and tries
to install firefly, it fails because firefly librados2 and librbd1 cannot be
installed over their hammer versions.
Loic Dachary [Thu, 3 Aug 2017 08:56:24 +0000 (10:56 +0200)]
ceph-disk: dmcrypt cluster must default to ceph
If ceph_fsid is not found, which is the case for legacy dmcrypted OSD,
the cluster must default to ceph, as it was before support for non
standard cluster names was introduced.
Matt Benjamin [Thu, 29 Jun 2017 19:19:36 +0000 (15:19 -0400)]
rgw: cls: ceph::timespan tag_timeout wrong units
In rgw_dir_suggest(), the ceph::timespan tag_timeout is intended
to be a value in seconds, but has been taken as something much
smaller (millis?). The incorrect time scale likely induces a race
condition with object deletes.
Fixes: http://tracker.ceph.com/issues/20380 Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit e6763ebd6124c1b4736c5c7850077df7644bc8f5)
Boris Ranto [Mon, 5 Jun 2017 16:44:18 +0000 (18:44 +0200)]
selinux: Install ceph-base before ceph-selinux
We need to have ceph-base installed before ceph-selinux to use ceph-disk
in %post script. The default ordering is random and so the installation
randomly failed to relabel the files.
Fixes: http://tracker.ceph.com/issues/20184 Signed-off-by: Boris Ranto <branto@redhat.com>
(cherry picked from commit e69086645d3411a2ed781609b670eb5f16ac4810)
Conflicts:
ceph.spec.in: No _epoch_prefix in jewel
Nathan Cutler [Sun, 25 Jun 2017 08:32:16 +0000 (10:32 +0200)]
tests: upgrade/hammer-x/v0-94-6-mon-overload: tweak packages list
Include some hammer dependencies that aren't in the jewel default packages
list, and exclude some java packages that may not be in the hammer repo and are
not needed for the upgrade test in any case.
N.B.: This cannot be cherry-picked from master because upgrade/hammer-x was
dropped in master.
Nathan Cutler [Tue, 27 Jun 2017 00:27:22 +0000 (02:27 +0200)]
tests: drop upgrade/hammer-jewel-x
This suite doesn't have any test logic in it. Its existence in the jewel branch
appears to be an oversight.
This cannot be cherry-picked from master because the upgrade/hammer-jewel-x
suite is present (and justified) in master and is not currently being dropped
there.
Nathan Cutler [Sun, 25 Jun 2017 08:27:58 +0000 (10:27 +0200)]
tests: upgrade/hammer-x/stress-split: tweak packages list
Include some hammer dependencies that aren't in the jewel default packages
list, and exclude some java packages that may not be in the hammer repo and are
not needed for the upgrade test in any case.
N.B.: This cannot be cherry-picked from master because upgrade/hammer-x was
dropped in master.
Nathan Cutler [Fri, 23 Jun 2017 06:27:42 +0000 (08:27 +0200)]
tests: move swift.py task to qa/tasks
In preparation for moving this task from ceph/teuthology.git into ceph/ceph.git
The move is necessary because jewel-specific changes are needed, yet teuthology
does not maintain a separate branch for jewel. Also, swift.py is a
Ceph-specific task so it makes more sense to have it in Ceph.
Kefu Chai [Thu, 22 Jun 2017 00:06:43 +0000 (08:06 +0800)]
qa/workunits/rados/test-upgrade-*: whitelist tests the right way
--gtest_filter=POSTIVE_PATTERNS[-NEGATIVE_PATTERNS], so we cannot add
multiple exclusive patterns using -pattern:-pattern, instead, we should
use: -pattern:pattern
Signed-off-by: Kefu Chai <kchai@redhat.com>
Conflicts:
qa/workunits/rados/test-upgrade-v11.0.0.sh: this change is not
cherry-picked from master, because the clone-range op was removed
from master. and only supported in pre-luminous releases.
Kefu Chai [Tue, 20 Jun 2017 11:49:14 +0000 (19:49 +0800)]
qa/workunits/rados/test-upgrade-*: whitelist tests for master
The jewel-x upgrade test now runs this script against a mixed cluster on
a machine with code from master installed. That means we have to
skip any new tests that will fail on a mixed cluster. CloneRange was
removed in 0d7b0b7.
Signed-off-by: Kefu Chai <kchai@redhat.com>
Conflicts:
qa/workunits/rados/test-upgrade-v11.0.0.sh: this change is not
cherry-picked from master, because the clone-range op was removed from
master. and only supported in pre-luminous releases.
After Locker::issue_new_caps() adds new Capability data struct,
do not issue caps immediately. Let CInode::encode_inodestate()
do the job instead. This can avoid various races that early reply
is not allowed, caps that haven't been sent to client gets revoked.
tests: rados: sleep before ceph tell osd.0 flush_pg_stats after restart
Even though we wait for HEALTH_OK after restarting the daemons, they are not
ready to respond to flush_pg_stats.
The reason why the osd is not ready for "tell" command after "ceph health"
shows that the cluster is "HEALTH_OK" is that the monitor fails to be notified
that the osd in question is not up in "heatbeat_interval". Because infernalis
does not have the osd_fast_fail_on_connection_refused support, the monitor
needs longer to detect that an osd is down, and osd_heartbeat_grace is used to
determine if an osd is down.
Patrick Donnelly [Fri, 17 Mar 2017 01:45:46 +0000 (21:45 -0400)]
mds: set ceph-mds name uncond for external tools
External tools like logrotate which use killall rely on the "ceph-mds" name to
find it in /proc/*/comm. This is normally the case but when ceph-mds respawns
using /proc/self/exe (on Linux), its name will change to "exe". This makes
logrotate fail to signal ceph-mds the log needs to be reopened and will lead to
the log growing until the disk is full.
This patch unconditionally sets the name so on respawn the name is correct (and
in any other possible scenario, such as a misnamed executable). Note, there is
still a very small race between execve and ceph_pthread_setname where the
process name is wrong.
John Spray [Thu, 23 Mar 2017 13:07:32 +0000 (09:07 -0400)]
mds: include advisory `path` field in damage
This will just be whatever path we were looking
at at the point that damage was notified -- no
intention whatsoever of providing any up to date
path or resolution when there are multiple paths
to an inode.
Fixes: http://tracker.ceph.com/issues/18509 Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit c0bff51ef409eb6e4b2fc248e06e5a7e43faf51e)
Conflicts:
src/mds/CDir.cc - omit dout(10) because jewel does not have cb86740a
src/mds/ScrubStack.cc - jewel does not have 7b456109 which changed
in->make_path_string_projected() call to in->make_path_string() but
it's moot because that line is dropped
Nathan Cutler [Tue, 9 May 2017 09:42:58 +0000 (11:42 +0200)]
build/ops: rpm: fix python-Sphinx package name for SUSE
This commit moves "BuildRequires: python-sphinx" down to the RH/CentOS/Fedora
distro conditional and adds a "BuildRequires: python-Sphinx" to the SUSE
conditional.
Signed-off-by: Jan Matejek <jmatejek@suse.com> Signed-off-by: Nathan Cutler <ncutler@suse.com>
(cherry picked from commit 0688f57d1c35692cdddf219d9ac3571d03dbb8e0)
weiqiaomiao [Tue, 14 Jun 2016 07:34:08 +0000 (15:34 +0800)]
rgw: remove unnecessary output
a lot of radosgw-admin command will output
"error in read_id for object name: default : (2) No such file or directory"
when the zone named 'default' is not exist: