Danny Al-Gaaf [Tue, 3 Mar 2015 11:14:05 +0000 (12:14 +0100)]
rados.py: fix (white)space issues
Fixes for:
- E202 whitespace before '}'
- E221 multiple spaces before operator
- E223 tab before operator
- E226 missing whitespace around arithmetic operator
- E251 unexpected spaces around keyword / parameter equals
- E261 at least two spaces before inline comment
- W293 blank line contains whitespace
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Tue, 3 Mar 2015 10:00:05 +0000 (11:00 +0100)]
ceph_argparse.py: fix pep8 indentation errors
Fix for:
- E126 continuation line over-indented for hanging indent
- E128 continuation line under-indented for visual indent
- E129 visually indented line with same indent as next logical line
- E131 continuation line unaligned for hanging indent
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Dmytro Iurchenko [Mon, 16 Feb 2015 16:47:59 +0000 (18:47 +0200)]
rgw: Swift API. Complement the response to "show container details"
OpenStack Object Storage API v1 states that X-Container-Object-Count, X-Container-Bytes-Used and user-defined metadata headers should be included in a response.
Loic Dachary [Mon, 2 Mar 2015 13:37:55 +0000 (14:37 +0100)]
tests: keep intermediate docker build layers
Because the docker devmapper backend has an intermittent bug
https://github.com/docker/docker/issues/4036
the build of the image will sometime fail. It will eventually succeed if
the command is repeated enough times. Not removing the intermediate
layers helps speed up the operation: when repeating the command, only
the layer that failed because of the above bug is rebuilt.
Jason Dillaman [Fri, 27 Feb 2015 14:46:55 +0000 (09:46 -0500)]
librbd: flush pending AIO after acquiring lock
There was a potential race condition between a delayed AIO
operation waiting on acquiring a lock and a snap_create
flushing all pending IO. Since snap_create owned md_lock, the
delayed AIO would not be allowed to complete -- deadlocking the
flush.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Fri, 27 Feb 2015 04:39:10 +0000 (23:39 -0500)]
librbd: hold snap_lock between clipping IO and registering AIO
In the case where concurrent IO is occurring when a trim resize
operation is initiated, hold the snap_lock between clipping the
IO operation and registering the pending op. That allows the
resize state machine to properly flush all operations issued
before the clip region was updated.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* should be using /var/lib/ceph/osd/{cluster-name}-{osd-num}/sysvinit
instead of var/lib/ceph/osd/{cluster-name}-{hostname}/sysvinit, thanks
to Kyle Hutson <kylehutson@ksu.edu>
Ken Dreyer [Fri, 27 Feb 2015 17:32:37 +0000 (10:32 -0700)]
Add GPLv2 text file
Most of the ceph tree is LGPLv2.1, but there are some files that are
under the full GPLv2.
Add a copy of the GNU General Public License (version 2) to the
distribution. This file was copied verbatim from
https://www.gnu.org/licenses/gpl-2.0.txt
Jason Dillaman [Thu, 26 Feb 2015 21:58:07 +0000 (16:58 -0500)]
librbd: C_SaferCond memory leak
Unlike the other Context derived classes, C_SaferCond is not
a suicidal object which deletes itself. Swap heap allocations
of C_SaferCond to stack-based allocations as a result.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Florian Haas [Fri, 27 Feb 2015 10:21:03 +0000 (11:21 +0100)]
doc: trivial: fix missing newlines in rbd man page
As it were, the order, stripe_unit and stripe_count options were
followed by descriptions rendered in the same monospace font as the
options themselves. Insert newlines so they are rendered as regular
text, as was the original intention.
Greg Farnum [Thu, 26 Feb 2015 23:20:11 +0000 (15:20 -0800)]
ceph-fuse: test dentry invalidation options and fail out if we fail
We identify the Linux kernel version and based on that either expect to
be able to invalidate dentries effectively, or expect to be able to remount
the ceph-fuse mountpoint. Test it using the Client functions and callbacks by
spinning off a thread to invoke the test that is separate from the main
FUSE loop.
Most unfortunately, there doesn't seem to be a good interface to tell
FUSE to shut down if we need to do that. See
http://fuse.996288.n3.nabble.com/libfuse-exiting-fuse-session-loop-td10686.html
I tried changing our signal invocation or attempting a simple action on
the mount point but those were ineffectual at terminating the remaining
processes; fusermount actually gets rid of them all.
Greg Farnum [Thu, 26 Feb 2015 23:12:47 +0000 (15:12 -0800)]
Client: support using dentry invalidation callbacks on older kernels
This brings back a few small code chunks that were removed in 0827bb79ea5127e6763f6e904dfa1a3266046ffb. We check the kernel version,
and if it is less than 3.18 we use these dentry invalidation callbacks
instead of the remount callback. This should resolve a number of
issues with racing against remount, including #10916, and lets older
unprivileged users on older kernels run even if they can't apply
options on mount (#10542).
Jason Dillaman [Thu, 26 Feb 2015 17:00:41 +0000 (12:00 -0500)]
qa/workunits/rbd/copy.sh: explicitly choose the image format
The rbd CLI now utilizes the rbd_default_format configuration
setting, therefore the copy test now needs to tell rbd which image
format it is expecting to create.
Fixes: #10961 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Guang Yang [Thu, 26 Feb 2015 08:13:12 +0000 (08:13 +0000)]
osd: fix negative degraded objects during backfilling
When there is deleting requests during backfilling, the reported number of degraded
objects could be negative, as the primary's num_objects is the latest (locally) but
the number for replicas might not reflect the deletings. A simple fix is to ignore
the negative subtracted value.
When accepting and "connect.connect_seq == existing->connect_seq",
existing->state maybe STATE_OPEN, STATE_STANDBY or STANDY_CONNECTING.
This commit only fix partial problem and want to assert
"(existing->state == STATE_CONNECTING)".
So later we added codes to catch
"(existing->state == STATE_OPEN || existing->state == STATE_STANDBY)"
before asserting.
Yan, Zheng [Wed, 25 Feb 2015 07:27:59 +0000 (15:27 +0800)]
client: re-send requsets before composing the cap reconnect message
After commit 419800fe (client: re-send request when MDS enters reconnecting
stage), cephfs client can send both unsafe requests and normal requests when
MDS is in reconnecting stage. Normal requests can have embedded cap releases,
the client code encodes these embedded cap releases after composing the cap
reconnect message. This causes the client sliently drop some caps. The fix
is re-send requsets (which add embedded cap releases) before composing the
cap reconnect message
Yan, Zheng [Wed, 25 Feb 2015 07:27:59 +0000 (15:27 +0800)]
client: re-send requsets before composing the cap reconnect message
After commit 419800fe (client: re-send request when MDS enters reconnecting
stage), cephfs client can send both unsafe requests and normal requests when
MDS is in reconnecting stage. Normal requests can have embedded cap releases,
the client code encodes these embedded cap releases after composing the cap
reconnect message. This causes the client sliently drop some caps. The fix
is re-send requsets (which add embedded cap releases) before composing the
cap reconnect message