]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
11 years agomon: OSDMonitor: disallow nonsensical cache-mode transitions 1740/head
Joao Eduardo Luis [Sat, 3 May 2014 02:42:19 +0000 (03:42 +0100)]
mon: OSDMonitor: disallow nonsensical cache-mode transitions

Fixes: 8155
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
11 years agomon: OSDMonitor: return immediately if 'osd tier cache-mode' is a no-op
Joao Eduardo Luis [Tue, 29 Apr 2014 17:03:56 +0000 (18:03 +0100)]
mon: OSDMonitor: return immediately if 'osd tier cache-mode' is a no-op

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
11 years agoCopy range using fiemap not entire length
Haomai Wang [Fri, 11 Apr 2014 09:28:13 +0000 (17:28 +0800)]
Copy range using fiemap not entire length

Under rbd usage, if a volume has tens of thousands of objects and each 4M
object only has several KB(run fio on this volume or other cases), this volume
will be very low performance during a long time after create snapshot on
this volume. The OSD will be busy with large bandwidth read/write although
the object actually has few bytes needed to be copied.

This commit try to use fiemap if backend fs support, it can skip unnecessary
range to write. It also can be beneficial to space effective, because the copied
object will be regard as snapshot object which is access infrequently.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agorbd-fuse: fix unlink
Shawn Edwards [Tue, 29 Apr 2014 00:05:36 +0000 (17:05 -0700)]
rbd-fuse: fix unlink

The path contains a leading / that needs to be ignored.

Fixes: #8197
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoMerge pull request #1701 from ceph/wip-libkrbd
Sage Weil [Mon, 28 Apr 2014 23:52:12 +0000 (16:52 -0700)]
Merge pull request #1701 from ceph/wip-libkrbd

libkrbd convenience library

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoMerge pull request #1648 from ceph/wip-client-sleep
Sage Weil [Mon, 28 Apr 2014 23:51:33 +0000 (16:51 -0700)]
Merge pull request #1648 from ceph/wip-client-sleep

Wip client sleep

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1709 from dachary/wip-brag
Josh Durgin [Mon, 28 Apr 2014 22:51:43 +0000 (15:51 -0700)]
Merge pull request #1709 from dachary/wip-brag

brag : useability changes

Reviewed-by: Babu Shanmugam <anbu@enovance.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoMerge branch 'wip-rbd-invalidate'
Josh Durgin [Mon, 28 Apr 2014 22:36:32 +0000 (15:36 -0700)]
Merge branch 'wip-rbd-invalidate'

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1737 from steveftaylor/add_rbd_fuse_image_restriction
Josh Durgin [Mon, 28 Apr 2014 22:33:34 +0000 (15:33 -0700)]
Merge pull request #1737 from steveftaylor/add_rbd_fuse_image_restriction

Added a new command line parameter (-i or --image=) that allows rbd-fuse...

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1699 from chrisglass/python-api-cleanup
Josh Durgin [Mon, 28 Apr 2014 22:28:31 +0000 (15:28 -0700)]
Merge pull request #1699 from chrisglass/python-api-cleanup

Simple mechanical cleanups

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agolibrbd: add an interface to invalidate cached data
Josh Durgin [Thu, 24 Apr 2014 21:47:24 +0000 (14:47 -0700)]
librbd: add an interface to invalidate cached data

This is useful for qemu to guarantee live migration with caching is
safe, by invalidating the cache on the destination before starting it.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
11 years agolibrbd: check return code and error out if invalidate_cache fails
Josh Durgin [Thu, 24 Apr 2014 21:43:35 +0000 (14:43 -0700)]
librbd: check return code and error out if invalidate_cache fails

This will only happen when shrinking or rolling back an image is done
while other I/O is in flight to the same ImageCtx. This is unsafe, so
return an error before performing the resize or rollback.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoChanged the -i parameter to -r in order to avoid a conflict with a generic flag inter... 1737/head
Stephen F Taylor [Mon, 28 Apr 2014 21:31:07 +0000 (15:31 -0600)]
Changed the -i parameter to -r in order to avoid a conflict with a generic flag interpreted by the common code.

11 years agoMerge pull request #1652 from ceph/wip-5170-firefly
Sage Weil [Mon, 28 Apr 2014 21:13:24 +0000 (14:13 -0700)]
Merge pull request #1652 from ceph/wip-5170-firefly

Wip 5170 firefly

11 years agoMerge pull request #1734 from ceph/wip-8202
Sage Weil [Mon, 28 Apr 2014 21:11:20 +0000 (14:11 -0700)]
Merge pull request #1734 from ceph/wip-8202

rgw: fix url escaping

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1736 from ceph/wip-7500-wusui
Yehuda Sadeh [Mon, 28 Apr 2014 21:06:11 +0000 (14:06 -0700)]
Merge pull request #1736 from ceph/wip-7500-wusui

Fix s3 tests in the rgw workunit.

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoFix s3 tests in the rgw workunit. 1736/head
Warren Usui [Mon, 28 Apr 2014 20:30:40 +0000 (13:30 -0700)]
Fix s3 tests in the rgw workunit.

Make it possible to set RGW_PORT with ENV variable.

Fixes: 7500
Signed-off-by: Warren Usui <warren.usui@inktank.com>
11 years agoAdded a new command line parameter (-i or --image=) that allows rbd-fuse to specify...
Stephen F Taylor [Mon, 28 Apr 2014 20:49:30 +0000 (14:49 -0600)]
Added a new command line parameter (-i or --image=) that allows rbd-fuse to specify a single image to be made available within
the mount directory. The purpose of this is to allow a single RBD to be "mounted" in userspace without opening (and locking)
the other RBDs in the pool.

This is accomplished by performing a case-sensitive string compare in enumerate_images() when an image name is
specified on the command line. If no image name is specified, all images appear in the mount directory. If a non-existent
image name is specified, the mount directory is empty.

Signed-off-by: Stephen F Taylor <steveftaylor@gmail.com>
11 years agodoc/release-notes: v0.67.8 notes
Sage Weil [Mon, 28 Apr 2014 19:40:04 +0000 (12:40 -0700)]
doc/release-notes: v0.67.8 notes

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agorgw: fix url escaping 1734/head
Yehuda Sadeh [Fri, 25 Apr 2014 21:11:27 +0000 (14:11 -0700)]
rgw: fix url escaping

Fixes: #8202
This fixes the radosgw side of issue #8202. Needed to cast value
to unsigned char, otherwise it'd get padded.

Backport: dumpling

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoclient: cleanup unsafe requests if MDS session is reset 1648/head
Yan, Zheng [Fri, 11 Apr 2014 08:42:42 +0000 (16:42 +0800)]
client: cleanup unsafe requests if MDS session is reset

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agoclient: wake up cap waiters if MDS session is reset
Yan, Zheng [Fri, 11 Apr 2014 08:31:29 +0000 (16:31 +0800)]
client: wake up cap waiters if MDS session is reset

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agoclient: drop dirty/flushing caps if auth MDS' session is reset
Yan, Zheng [Fri, 11 Apr 2014 07:34:25 +0000 (15:34 +0800)]
client: drop dirty/flushing caps if auth MDS' session is reset

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agoclient: add asok command to kick sessions that were remote reset
Yan, Zheng [Fri, 11 Apr 2014 07:03:37 +0000 (15:03 +0800)]
client: add asok command to kick sessions that were remote reset

Fixes: #8021
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agoMerge pull request #1729 from ceph/wip-7966
Yan, Zheng [Sat, 26 Apr 2014 12:49:16 +0000 (20:49 +0800)]
Merge pull request #1729 from ceph/wip-7966

readlink result in resapwn

Reviewed-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: terminate readlink result in resapwn 1729/head
Sage Weil [Sat, 26 Apr 2014 02:46:24 +0000 (19:46 -0700)]
mds: terminate readlink result in resapwn

readlink(2) does not null terminate the buffer; we need to do that.

Fixes: #7966
Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1727 from ceph/wip-8193
wusui [Fri, 25 Apr 2014 23:20:20 +0000 (16:20 -0700)]
Merge pull request #1727 from ceph/wip-8193

ceph_test_rados_api_tier: increase HitSetTrim timeouts

11 years agoMerge pull request #1725 from FlorentCoppint/master
Sage Weil [Fri, 25 Apr 2014 22:58:47 +0000 (15:58 -0700)]
Merge pull request #1725 from FlorentCoppint/master

Skipping '_netdev' Debian fstab option

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoceph_test_rados_api_tier: increase HitSetTrim timeouts 1727/head
Sage Weil [Fri, 25 Apr 2014 22:49:06 +0000 (15:49 -0700)]
ceph_test_rados_api_tier: increase HitSetTrim timeouts

...so that they pass when they get unlucky with thrashing.

This will vastly decrease the probability of failure, but failure will
always be possible when a timeout is in place.

Fixes: #8193
Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoSkipping '_netdev' Debian fstab option 1725/head
FlorentCoppint [Fri, 25 Apr 2014 07:20:02 +0000 (09:20 +0200)]
Skipping '_netdev' Debian fstab option

Signed-off-by: Florent Bautista <florent@coppint.com>
11 years agoMerge pull request #1717 from dachary/wip-auid
Loic Dachary [Thu, 24 Apr 2014 20:42:09 +0000 (22:42 +0200)]
Merge pull request #1717 from dachary/wip-auid

mon: add ceph osd pool set <pool> auid

Reviewed-by: Greg Farnum <greg@inktank.com>
11 years agoMerge pull request #1724 from ceph/wip-uselocalgithubforqemu-wusui
wusui [Thu, 24 Apr 2014 20:27:40 +0000 (13:27 -0700)]
Merge pull request #1724 from ceph/wip-uselocalgithubforqemu-wusui

Use new git mirror for qemu-iotests

11 years agoUse new git mirror for qemu-iotests 1724/head
Warren Usui [Thu, 24 Apr 2014 19:55:26 +0000 (12:55 -0700)]
Use new git mirror for qemu-iotests

Fixes: 8191
Signed-off-by: Warren Usui <warren.usui@inktank.com>
11 years agobrag : implement --verbose on client 1709/head
Loic Dachary [Tue, 22 Apr 2014 13:41:47 +0000 (15:41 +0200)]
brag : implement --verbose on client

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agobrag : document the zero argument behavior
Loic Dachary [Tue, 22 Apr 2014 13:35:20 +0000 (15:35 +0200)]
brag : document the zero argument behavior

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agobrag : meaningfull error messages
Loic Dachary [Tue, 22 Apr 2014 13:24:32 +0000 (15:24 +0200)]
brag : meaningfull error messages

To help figure out problems, include the error message in the output
when a submission fails.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoMerge remote-tracking branch 'gh/firefly'
Sage Weil [Thu, 24 Apr 2014 01:00:59 +0000 (18:00 -0700)]
Merge remote-tracking branch 'gh/firefly'

11 years agoMerge pull request #1720 from jdurgin/wip-list-children-test
Sage Weil [Thu, 24 Apr 2014 00:23:12 +0000 (17:23 -0700)]
Merge pull request #1720 from jdurgin/wip-list-children-test

test_rbd.py: ignore children in cache pools

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1719 from ceph/wip-8168
Sage Weil [Wed, 23 Apr 2014 23:07:02 +0000 (16:07 -0700)]
Merge pull request #1719 from ceph/wip-8168

Wip 8168

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoReplicatedPG::do_osd_ops: consider head whiteout in list-snaps 1719/head
Samuel Just [Tue, 22 Apr 2014 23:03:48 +0000 (16:03 -0700)]
ReplicatedPG::do_osd_ops: consider head whiteout in list-snaps

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG::do_op: don't return ENOENT for whiteout on snapdir read
Samuel Just [Tue, 22 Apr 2014 22:12:52 +0000 (15:12 -0700)]
ReplicatedPG::do_op: don't return ENOENT for whiteout on snapdir read

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoMerge pull request #1718 from ceph/wip-7882-wusui
Josh Durgin [Wed, 23 Apr 2014 20:47:02 +0000 (13:47 -0700)]
Merge pull request #1718 from ceph/wip-7882-wusui

Support latest qemu iotest code

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agotest_rbd.py: ignore children in cache pools 1720/head
Josh Durgin [Wed, 23 Apr 2014 20:27:48 +0000 (13:27 -0700)]
test_rbd.py: ignore children in cache pools

This is necessary until http://tracker.ceph.com/issues/8187 is fixed.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
11 years agomon: add ceph osd pool set <pool> auid 1717/head
Loic Dachary [Wed, 23 Apr 2014 19:55:57 +0000 (21:55 +0200)]
mon: add ceph osd pool set <pool> auid

When a pool is created with ceph osd pool create, the auid is not
inferred from the session auid and is set to zero. Add the

  ceph osd pool set <pool> auid <int>

command to set it after it is created, and the matching get:

  ceph osd pool get <pool> auid

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoSupport latest qemu iotest code 1718/head
Warren Usui [Wed, 23 Apr 2014 20:20:14 +0000 (13:20 -0700)]
Support latest qemu iotest code

Modified qemu-iotests workunit script to check for versions
that use the latest qemu (currently only Trusty).  Limit the
tests to those that are applicable to rbd.

Fixes: 7882
Signed-off-by: Warren Usui <warren.usui@inktank.com>
11 years agoMerge pull request #1714 from ceph/wip-fs-client
Sage Weil [Wed, 23 Apr 2014 15:51:26 +0000 (08:51 -0700)]
Merge pull request #1714 from ceph/wip-fs-client

two small fixes for client

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agorbd: deprecate --no-settle option 1701/head
Ilya Dryomov [Wed, 23 Apr 2014 08:57:12 +0000 (12:57 +0400)]
rbd: deprecate --no-settle option

Waiting for udev has been the default for a while now, and, after
switching to libkrbd, is no longer an option.  (libkrbd waits for
specific devices to show up, the old behaviour was to wait for
everything udev.)

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agodoc: 'rbd showmapped' doesn't need privileges
Ilya Dryomov [Fri, 18 Apr 2014 17:18:29 +0000 (21:18 +0400)]
doc: 'rbd showmapped' doesn't need privileges

No need to run 'rbd showmapped' with sudo.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agodoc: do not mention modprobe in rbd docs
Ilya Dryomov [Fri, 18 Apr 2014 17:19:27 +0000 (21:19 +0400)]
doc: do not mention modprobe in rbd docs

rbd binary will load rbd.ko itself, with appropriate options.  Loading
it by hand with default options is undesirable.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agorbd: switch to libkrbd for 'rbd {map,showmapped,unmap}' operations
Ilya Dryomov [Thu, 17 Apr 2014 15:03:24 +0000 (19:03 +0400)]
rbd: switch to libkrbd for 'rbd {map,showmapped,unmap}' operations

Thanks to libkrbd, 'rbd map' now outputs the device node it mapped to
to stdout:

    $ sudo rbd map foo
    /dev/rbd0

This will allow us to get rid of a lot of ad-hoc poll/sleep code in our
qa scripts.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agomount.ceph: switch to module_load()
Ilya Dryomov [Thu, 17 Apr 2014 15:03:24 +0000 (19:03 +0400)]
mount.ceph: switch to module_load()

Implement modprobe() in terms of module_load() from common/module.h

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agorbd: add libkrbd convenience library
Ilya Dryomov [Thu, 17 Apr 2014 15:03:24 +0000 (19:03 +0400)]
rbd: add libkrbd convenience library

Add libkrbd libtool convenience library to provide an interface for
mapping and unmapping rbd images programmatically.  This will be used
by the rbd binary itself and the librbd_fsx testing tool.

libkrbd takes care of the kernel module stuff (common/module.h) and
makes use of libudev to be able to properly wait for block device
creation and deletion and tell which block device got assigned by the
kernel to the newly created mapping.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agoclient: check cap ID when handling cap export message 1714/head
Yan, Zheng [Mon, 21 Apr 2014 08:26:33 +0000 (16:26 +0800)]
client: check cap ID when handling cap export message

handle following sequence of events:
- mds0 exports an inode to mds1. client receives the cap import
  message from mds1. caps from mds0 are removed while handling
  the cap import message.
- mds1 exports an inode to mds0. client receives the cap export
  message from mds1. handle_cap_export() adds placeholder caps
  for mds0
- client receives the first cap export message (for exporting
  inode from mds0 to mds1)

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agoclient: avoid releasing caps that are being used
Yan, Zheng [Tue, 22 Apr 2014 02:26:50 +0000 (10:26 +0800)]
client: avoid releasing caps that are being used

To avoid releasing caps that are being used, encode_inode_release()
should send implemented caps to MDS.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agoMerge pull request #1713 from ceph/wip-7439
Samuel Just [Wed, 23 Apr 2014 00:36:20 +0000 (17:36 -0700)]
Merge pull request #1713 from ceph/wip-7439

Wip 7439

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoReplicatedPG: handle ec pools in mark_all_unfound_lost 1713/head
Samuel Just [Tue, 22 Apr 2014 21:56:08 +0000 (14:56 -0700)]
ReplicatedPG: handle ec pools in mark_all_unfound_lost

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years ago0.80-rc1 v0.80-rc1
Jenkins [Tue, 22 Apr 2014 21:21:45 +0000 (21:21 +0000)]
0.80-rc1

11 years agoReplicatedPG: enable mark_unfound_lost delete for ec pools
Samuel Just [Tue, 22 Apr 2014 19:45:28 +0000 (12:45 -0700)]
ReplicatedPG: enable mark_unfound_lost delete for ec pools

revert is tricky to implement at this time for ec pools, so
we'll instead just implement delete for ec pools.

Fixes: #7439
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoqa/workunits/rbd/copy.sh: skip some tests when tiering is enabled
Sage Weil [Tue, 22 Apr 2014 16:42:16 +0000 (09:42 -0700)]
qa/workunits/rbd/copy.sh: skip some tests when tiering is enabled

The rados ls bit doesn't work.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoqa/workunits/rbd/copy.sh: fix test
Sage Weil [Tue, 22 Apr 2014 16:37:32 +0000 (09:37 -0700)]
qa/workunits/rbd/copy.sh: fix test

I broke this in commit 9d64ac66082bd108ec3c2a74e2e77475b5564eae.

Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoMerge pull request #1691 from ceph/wip-8139
Sage Weil [Tue, 22 Apr 2014 19:40:02 +0000 (12:40 -0700)]
Merge pull request #1691 from ceph/wip-8139

osd_types: pg_t: allow is_split to handle checks for splits prior to the most recent

Reviewed-by: Samuel Just <sam.just@inktank.com>
11 years agoECBackend: use std::swap for boost::optional
Samuel Just [Tue, 22 Apr 2014 17:21:55 +0000 (10:21 -0700)]
ECBackend: use std::swap for boost::optional

Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agocommon: add module_{load,has_parameter}()
Ilya Dryomov [Thu, 17 Apr 2014 15:03:24 +0000 (19:03 +0400)]
common: add module_{load,has_parameter}()

Add two kernel module helpers: module_{module,has_parameter}().  They
are going to live in common/module.[ch].

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agoMakefile: build common/secret.c with libtool
Ilya Dryomov [Thu, 17 Apr 2014 15:03:24 +0000 (19:03 +0400)]
Makefile: build common/secret.c with libtool

Turn common/secret.c into a libtool convenience library, libsecret.la.
Currently it is build directly, twice: for mount.ceph and rbd binaries.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agoconfigure: check for blkid/blkid.h header
Ilya Dryomov [Thu, 17 Apr 2014 15:03:24 +0000 (19:03 +0400)]
configure: check for blkid/blkid.h header

The check for the presence of blkid/blkid.h was missing.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agorbd: use stringify() in options parsing routines
Ilya Dryomov [Wed, 16 Apr 2014 07:39:00 +0000 (11:39 +0400)]
rbd: use stringify() in options parsing routines

Use stringify() in map_option_{uuid,ip,int}_cb() instead of essentially
open-coding it.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agostringify: use ostringstream instead of stringstream
Ilya Dryomov [Wed, 16 Apr 2014 07:39:00 +0000 (11:39 +0400)]
stringify: use ostringstream instead of stringstream

Use ostringstream, as we don't need both input and output of the
stringstream in stringify().

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agoMerge pull request #1710 from ceph/wip-coverity
Yehuda Sadeh [Tue, 22 Apr 2014 16:02:33 +0000 (09:02 -0700)]
Merge pull request #1710 from ceph/wip-coverity

a couple coverity fixes

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoMerge pull request #1711 from ceph/wip-coverity-respawn
Sage Weil [Tue, 22 Apr 2014 15:37:21 +0000 (08:37 -0700)]
Merge pull request #1711 from ceph/wip-coverity-respawn

mds: make strncpy in ::respawn safer

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agomds: make strncpy in ::respawn safer 1711/head
John Spray [Tue, 22 Apr 2014 15:31:27 +0000 (16:31 +0100)]
mds: make strncpy in ::respawn safer

Previous code assumed null terminated argv[0]
was not longer than PATH_MAX and the resulting
strncpy was not strictly safe.

Modify the bounds to ensure that copy will not
result in an unterminated string if argv[0]
is oversized.

Signed-off-by: John Spray <john.spray@inktank.com>
11 years agoosd/osd_types: RWState: initialize snaptrimmer_write_marker 1710/head
Sage Weil [Tue, 22 Apr 2014 15:29:58 +0000 (08:29 -0700)]
osd/osd_types: RWState: initialize snaptrimmer_write_marker

** CID 1204295:  Uninitialized scalar field  (UNINIT_CTOR)
/osd/osd_types.h: 2716 in ObjectContext::RWState::RWState()()

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosdc/Objecter: drop unused field
Sage Weil [Tue, 22 Apr 2014 15:28:52 +0000 (08:28 -0700)]
osdc/Objecter: drop unused field

This as missed by 860d72770cdf092c027d50f4ee03bed76c975599.

** CID 1204296:  Uninitialized scalar field  (UNINIT_CTOR)
/osdc/Objecter.h: 1165 in Objecter::Op::Op(const object_t &, const
object_locator_t &, std::vector<OSDOp, std::allocator<OSDOp>> &, int, Context *,
Context *, unsigned long *)()
/osdc/Objecter.h: 1165 in Objecter::Op::Op(const object_t &, const
object_locator_t &, std::vector<OSDOp, std::allocator<OSDOp>> &, int, Context *,
Context *, unsigned long *)()

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agodoc/release-notes: a bit of prose about firefly
Sage Weil [Tue, 22 Apr 2014 01:33:00 +0000 (18:33 -0700)]
doc/release-notes: a bit of prose about firefly

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/osd_types: pg_interval_t: include primaries in operator<< 1691/head
Sage Weil [Sun, 20 Apr 2014 05:08:41 +0000 (22:08 -0700)]
osd/osd_types: pg_interval_t: include primaries in operator<<

Also make up vs acting explicit.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/osd_types: pg_interval_t: include up_primary in pg_interval_t
Sage Weil [Sun, 20 Apr 2014 05:06:48 +0000 (22:06 -0700)]
osd/osd_types: pg_interval_t: include up_primary in pg_interval_t

Nothing uses this, but it triggers a new interval, which makes it confusing
when it is not recording in the interval itself.  Let's add it now.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/osd_types: pg_interval_t: dump primary
Sage Weil [Sun, 20 Apr 2014 05:05:27 +0000 (22:05 -0700)]
osd/osd_types: pg_interval_t: dump primary

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: change in up set primary constitutes a peering interval change
Sage Weil [Sun, 20 Apr 2014 05:04:33 +0000 (22:04 -0700)]
osd: change in up set primary constitutes a peering interval change

In several places, a change in the up_primary triggers a new peering
interval, but the palces that actually generate the new past intervals,
including check_new_interval(), did not enforce that.  This becomes
somewhat obvious when you see that those callers are ignoring the
up_primary output argument for pg_to_up_acting_osds().

Fix this by adding arguments to check_new_interval and fixing the callers
to pass them in properly.  Add a unit test case to verify this.

Note that the past interval struct itself does not record who the
up_primary was; possibly it should.

Fixes: #8139
Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: use parent pgid (as appropriate) in generate_past_intervals()
Sage Weil [Fri, 18 Apr 2014 22:48:33 +0000 (15:48 -0700)]
osd: use parent pgid (as appropriate) in generate_past_intervals()

Feed in the ancestor pg_t (if any) when we are looking at intervals for
previous maps that may have preceded a recent split.

Fixes: #8139
Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1651 from enovance/wip-brag
Sage Weil [Tue, 22 Apr 2014 03:49:43 +0000 (20:49 -0700)]
Merge pull request #1651 from enovance/wip-brag

Few bug fixes in ceph-brag

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agodoc/release-notes: v0.80
Sage Weil [Tue, 22 Apr 2014 01:20:56 +0000 (18:20 -0700)]
doc/release-notes: v0.80

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1707 from ceph/wip-rbd-test
Josh Durgin [Mon, 21 Apr 2014 23:53:35 +0000 (16:53 -0700)]
Merge pull request #1707 from ceph/wip-rbd-test

rbd: fix tests for cache pools

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoqa/workunit/rbd/import_export.sh: skip list-objects tests with tiering 1707/head
Sage Weil [Mon, 21 Apr 2014 23:47:10 +0000 (16:47 -0700)]
qa/workunit/rbd/import_export.sh: skip list-objects tests with tiering

Listing objects isn't reliable with cache pools; skip that part of the
test if we see that rbd has tiering enabled.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoqa/workunit/rbd/copy.sh: do not delete/recreate rbd pool
Sage Weil [Mon, 21 Apr 2014 23:26:23 +0000 (16:26 -0700)]
qa/workunit/rbd/copy.sh: do not delete/recreate rbd pool

Among other things, it breaks when tiering is enabled.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agodoc: Fixed syntax to include 'pool'.
John Wilkins [Mon, 21 Apr 2014 22:43:23 +0000 (15:43 -0700)]
doc: Fixed syntax to include 'pool'.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
11 years agoPG::PriorSet: consider lost osds in up_now for pcontdec
Samuel Just [Sun, 20 Apr 2014 23:45:12 +0000 (16:45 -0700)]
PG::PriorSet: consider lost osds in up_now for pcontdec

Otherwise, the pg will remain down even as osds are marked lost.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoMerge pull request #1703 from ceph/wip-7942
Samuel Just [Mon, 21 Apr 2014 22:13:22 +0000 (15:13 -0700)]
Merge pull request #1703 from ceph/wip-7942

Wip 7942

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoReplicatedPG::do_op: check for blocked snapset obj 1703/head
Samuel Just [Wed, 16 Apr 2014 17:37:01 +0000 (10:37 -0700)]
ReplicatedPG::do_op: check for blocked snapset obj

Otherwise, we might use an invalid snapset in find_object_context.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: in trim, grab w locks on obc and snapset_obc
Samuel Just [Mon, 14 Apr 2014 23:20:39 +0000 (16:20 -0700)]
ReplicatedPG: in trim, grab w locks on obc and snapset_obc

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: if we get ENOENT on clone, remove clone from snapset
Samuel Just [Fri, 18 Apr 2014 23:51:34 +0000 (16:51 -0700)]
ReplicatedPG: if we get ENOENT on clone, remove clone from snapset

Fixes: #7916
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: do not create whiteout clones
Samuel Just [Tue, 8 Apr 2014 21:03:59 +0000 (14:03 -0700)]
ReplicatedPG: do not create whiteout clones

First, make_writeable treats whiteout heads like snapdir for
cloning purposes.  Second, to ensure that we send the correct
deletes on flush to the backing pool, we instead use oi.snaps
on any clone we are flushing to infer the snaps during which
head did not exist and send a delete as appropriate prior to
the copy_from.

Normally, we'd have a problem if the delete and the copy_from
completed, but an interval change intervened before the dirty
flag was cleared since we'd end up re-deleting the object.
To avoid that, we use the CEPH_OSD_FLAG_ORDERSNAP flag.

Additionally, we will use the correct snap_seq on the delete
or flush as appropriate to ensure that the previous clone
gets created with the same clone id as in the cache pool.

Fixes: #7942
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG,rados: add CEPH_OSD_[COPY_FROM]_MAP_SNAP_TO_CLONE
Samuel Just [Tue, 8 Apr 2014 21:27:33 +0000 (14:27 -0700)]
ReplicatedPG,rados: add CEPH_OSD_[COPY_FROM]_MAP_SNAP_TO_CLONE

When promoting a clone, we want to use the provided snapid to specify
specify the clone id directly.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoMerge pull request #1705 from ceph/wip-8124
Sage Weil [Mon, 21 Apr 2014 21:28:43 +0000 (14:28 -0700)]
Merge pull request #1705 from ceph/wip-8124

Wip 8124

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoqa/workunits/cephtool/test.sh: make set pg_num test non-racy
Sage Weil [Mon, 21 Apr 2014 21:18:21 +0000 (14:18 -0700)]
qa/workunits/cephtool/test.sh: make set pg_num test non-racy

Loop while the pool is creating.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
11 years agoReplicatedPG: do not use shard for hit_set object names 1705/head
Samuel Just [Sun, 20 Apr 2014 20:16:36 +0000 (13:16 -0700)]
ReplicatedPG: do not use shard for hit_set object names

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG::agent_load_hit_sets: take ondisk_read_lock
Samuel Just [Sat, 19 Apr 2014 01:11:55 +0000 (18:11 -0700)]
ReplicatedPG::agent_load_hit_sets: take ondisk_read_lock

Otherwise, the hit_set might be not yet written due to a recently
completed recovery.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoPG,PGLog: update hit_set during peering
Samuel Just [Fri, 18 Apr 2014 22:14:33 +0000 (15:14 -0700)]
PG,PGLog: update hit_set during peering

Fixes: #8124
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoosd/: propogate hit_set history with repop
Samuel Just [Thu, 17 Apr 2014 19:27:07 +0000 (12:27 -0700)]
osd/: propogate hit_set history with repop

We don't actually send the whole info on each repop, just the log
entries, updated stats, and a few other bits.  For hit_set ops, we need
to also communicate the new hit_set history status atomically with the
log entries and the transaction.  Thus, we add a channel for an optional
pg_hit_set_history_t field in PGBackend::submit_transaction interface
and associated messages and implementations to update the hit_set info
field along with the log entries.

This also means that hit_set_(persist|trim) update an
updated_hit_set_history field on the OpContext instead of directly
modifying the info field.

Fixes: #8124
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoencoding: use unqualified name for encode/decode in boost::optional encoding
Samuel Just [Thu, 17 Apr 2014 19:23:21 +0000 (12:23 -0700)]
encoding: use unqualified name for encode/decode in boost::optional encoding

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoECMsgTypes::ECSubWrite: fix at_version indentation
Samuel Just [Thu, 17 Apr 2014 18:03:19 +0000 (11:03 -0700)]
ECMsgTypes::ECSubWrite: fix at_version indentation

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoosd: track the number of hit_set archive objects in a pg
Samuel Just [Mon, 21 Apr 2014 17:52:58 +0000 (10:52 -0700)]
osd: track the number of hit_set archive objects in a pg

Also, use this value in agent_choose_mode instead of the max
number.

Related: #8124
Signed-off-by: Samuel Just <sam.just@inktank.com>