]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
10 years agoFix Yuan's mailmap 2890/head
Yuan Zhou [Mon, 10 Nov 2014 01:47:29 +0000 (09:47 +0800)]
Fix Yuan's mailmap

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
10 years agoMerge pull request #2869 from fgimenez/fix-tests-on-btrfs
Sage Weil [Sun, 9 Nov 2014 05:05:40 +0000 (21:05 -0800)]
Merge pull request #2869 from fgimenez/fix-tests-on-btrfs

Fix tests on btrfs: leftover subvolumes removed

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
10 years agoMerge pull request #2860 from XinzeChi/master
Loic Dachary [Sat, 8 Nov 2014 15:03:45 +0000 (16:03 +0100)]
Merge pull request #2860 from XinzeChi/master

osd: cache pool: delete dead code in ReplicatedPG::agent_choose_mode

Reviewed-by: Loic Dachary <ldachary@redhat.com>
10 years agotest: use unsigned ints to compare against size()
Greg Farnum [Sat, 8 Nov 2014 00:20:57 +0000 (16:20 -0800)]
test: use unsigned ints to compare against size()

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agoMerge pull request #2814 from ceph/wip-inode-scrub
Gregory Farnum [Sat, 8 Nov 2014 00:16:02 +0000 (16:16 -0800)]
Merge pull request #2814 from ceph/wip-inode-scrub

Wip inode scrub

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: John Spray <john.spray@redhat.com>
10 years agoMerge pull request #2884 from dachary/wip-mailmap
Loic Dachary [Fri, 7 Nov 2014 22:56:15 +0000 (23:56 +0100)]
Merge pull request #2884 from dachary/wip-mailmap

mailmap: Loic Dachary affiliation

10 years agomailmap: Loic Dachary affiliation 2884/head
Loic Dachary [Fri, 7 Nov 2014 22:54:07 +0000 (23:54 +0100)]
mailmap: Loic Dachary affiliation

Signed-off-by: Loic Dachary <ldachary@redhat.com>
10 years agoMerge pull request #2882 from ceph/wip-doc-dumpling-to-firefly
tmuthamizhan [Fri, 7 Nov 2014 22:09:02 +0000 (14:09 -0800)]
Merge pull request #2882 from ceph/wip-doc-dumpling-to-firefly

doc: Added Dumpling to Firefly upgrade section.

10 years agodoc: Added Dumpling to Firefly upgrade section. 2882/head
John Wilkins [Fri, 7 Nov 2014 21:16:45 +0000 (13:16 -0800)]
doc: Added Dumpling to Firefly upgrade section.

Fixes: #7679
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
10 years agoMerge remote-tracking branch 'origin/master' into wip-inode-scrub 2814/head
Greg Farnum [Fri, 7 Nov 2014 21:15:58 +0000 (13:15 -0800)]
Merge remote-tracking branch 'origin/master' into wip-inode-scrub

Conflicts:
src/common/Makefile.am
src/mds/Server.cc

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agoMDS: clean up internal MDRequests the standard way
Greg Farnum [Thu, 6 Nov 2014 19:10:29 +0000 (11:10 -0800)]
MDS: clean up internal MDRequests the standard way

All cleanup is now routed through respond_to_request(),
which invokes the internal_op_finish Context*, then does
mdcache->request_finish(). This is easier to reason about,
and indeed fixes a bug (I was not cleaning up locks
following flush). Use the MDSContinuation to facilitate
this in scrub's case.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agoMDS: CInode: break out of validation early on symlinks
Greg Farnum [Fri, 24 Oct 2014 23:38:24 +0000 (16:38 -0700)]
MDS: CInode: break out of validation early on symlinks

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agocommon/ceph_strings: add some MDS internal op names to ceph_mds_op_name()
Greg Farnum [Thu, 2 Oct 2014 22:21:31 +0000 (15:21 -0700)]
common/ceph_strings: add some MDS internal op names to ceph_mds_op_name()

In addition to my validate and flush, this is also missing exportdir.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDS: add a flush_dentry() function, and wire it up to the admin socket
Greg Farnum [Tue, 9 Sep 2014 21:55:42 +0000 (14:55 -0700)]
MDS: add a flush_dentry() function, and wire it up to the admin socket

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDS: CInode: create a flush() function
Greg Farnum [Fri, 11 Jul 2014 21:20:05 +0000 (14:20 -0700)]
MDS: CInode: create a flush() function

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDCache: handle internal ops in respond_to_request()
Greg Farnum [Fri, 29 Aug 2014 06:25:42 +0000 (23:25 -0700)]
MDCache: handle internal ops in respond_to_request()

This only works for those which have specified a finisher in the MDR.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDCache: make scrub_dentry schedulable and reentrant
Greg Farnum [Fri, 29 Aug 2014 06:03:59 +0000 (23:03 -0700)]
MDCache: make scrub_dentry schedulable and reentrant

Rather than assuming that any necessary inodes are in the cache, split up
MDCache::scrub_dentry into setup and work phases. Add an internal_op_finisher()
to MDRequest. Dispatch any CEPH_MDS_OP_VALIDATE internal operations to
scrub_dentry_work(). Taken together, these make everything work properly when
path_traverse() (by way of rdlock_path_pin_ref()) needs to go to disk before
satisfying the lookup.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDCache: "handle" request_forward on internal ops
Greg Farnum [Wed, 27 Aug 2014 21:11:26 +0000 (14:11 -0700)]
MDCache: "handle" request_forward on internal ops

For now, just return -EXDEV ("Cross-device link") on internal ops that
require forwarding, as forwarding internal ops will require a great deal more
infrastructure.. But push the issue down to this level instead of worrying
about it in path_traverse, and consider the possibility that the MDRequest
might not have a client_request that it's wrapped around.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoServer: rename reply_request() -> respond_to_request()
Greg Farnum [Thu, 21 Aug 2014 23:25:17 +0000 (16:25 -0700)]
Server: rename reply_request() -> respond_to_request()

This is no longer necessarily a reply; it could turn into a Context
activation or something.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoServer: rename reply_request -> reply_client_request; make it private
Greg Farnum [Thu, 21 Aug 2014 03:12:00 +0000 (20:12 -0700)]
Server: rename reply_request -> reply_client_request; make it private

The generic reply_request(MDRequest, int) is now the only caller. It's still
just building an MClientRequest to pass along, but we can change it a lot more
easily now to support responding to non-client requests.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoServer: add snapbl to MDRequest and eliminate last explicit MClientReply
Greg Farnum [Thu, 21 Aug 2014 03:02:45 +0000 (20:02 -0700)]
Server: add snapbl to MDRequest and eliminate last explicit MClientReply

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoServer: use mdr->reply_extra_bl instead of explicit MClientReply
Greg Farnum [Thu, 21 Aug 2014 02:47:00 +0000 (19:47 -0700)]
Server: use mdr->reply_extra_bl instead of explicit MClientReply

Set the MClientReply::extra_bl from reply_extra_bl unconditionally in
reply_request(), instead of only in early_reply(). Further isolate
the reply_request() callers from the use of MClientReply this way.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoServer: do not use explicit MClientReply if we don't need to
Greg Farnum [Thu, 21 Aug 2014 02:38:45 +0000 (19:38 -0700)]
Server: do not use explicit MClientReply if we don't need to

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoServer: remove tracei and tracedn parameters from reply_request
Greg Farnum [Fri, 1 Aug 2014 14:01:04 +0000 (07:01 -0700)]
Server: remove tracei and tracedn parameters from reply_request

We have members for these two parameters in the MDRequestImpl already, so
make use of them. This helps us move towards dropping the expectation of an
MClientRequest from functions like rdlock_path_pin_ref().

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDCache: add a scrub_dentry() function, and wire it up to the admin socket
Greg Farnum [Fri, 11 Jul 2014 22:20:32 +0000 (15:20 -0700)]
MDCache: add a scrub_dentry() function, and wire it up to the admin socket

scrub_dentry() is passed a string path, and it validates it before replying. We
hook up an admin socket command "scrub_path" to call it and dump the output.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDS: CInode: implement validated_data::dump()
Greg Farnum [Thu, 2 Oct 2014 21:51:20 +0000 (14:51 -0700)]
MDS: CInode: implement validated_data::dump()

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDS: CInode::validate_disk_state()
Greg Farnum [Thu, 10 Jul 2014 00:27:40 +0000 (17:27 -0700)]
MDS: CInode::validate_disk_state()

Add a function that will validate the on-disk state of the CInode. We currently
check that the on-disk backtrace matches (or is older) and compare rstats on
dirfrags against the parent dir's inode (for directories only).

TODO: validate that the on-disk Inode object matches what the parent
directory holds.

It's using a sort-of new programming model, trying to stuff stack data into
a Continuation object and write everything sequentially instead of having
a function and Context per IO.

Signed-off-by: Greg Farnum <greg@inktank.com>
Signed-off-by: John Spray <john.spray@redhat.com>
10 years agoRebase: MDS: Add an MDSContinuation for ease of use
Greg Farnum [Wed, 5 Nov 2014 22:23:32 +0000 (14:23 -0800)]
Rebase: MDS: Add an MDSContinuation for ease of use

Unlike the regular Continuation, this one works in terms of an MDRequest
and has wrappers to provide Context callbacks that are either
internal MDS or IO appropriate.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agoContinuation: Add a new Continuation class.
Greg Farnum [Wed, 9 Jul 2014 23:53:53 +0000 (16:53 -0700)]
Continuation: Add a new Continuation class.

Signed-off-by: Greg Farnum <greg@inktank.com>
Signed-off-by: John Spray <john.spray@redhat.com>
SQUASH "Continuation: Add a new Continuation class."

10 years agoMDCache: create_unlinked_system_inode() as the guts of create_system_inode()
Greg Farnum [Wed, 1 Oct 2014 00:03:24 +0000 (17:03 -0700)]
MDCache: create_unlinked_system_inode() as the guts of create_system_inode()

This way we can create duplicate CInodes without actually linking them
into the cache. It'll be helpful for comparing different versions of
disk states and in-memory state, etc.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDS: MDRequestImpl: provide filepath/filepath2 substitute for MClientRequest
Greg Farnum [Tue, 15 Jul 2014 17:42:29 +0000 (10:42 -0700)]
MDS: MDRequestImpl: provide filepath/filepath2 substitute for MClientRequest

Use this passthru in the Server path locking functions so that we can get
locks or auth pins without an associated MClientRequest.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDRequest: dump internal op names as well as IDs
Greg Farnum [Thu, 2 Oct 2014 22:20:42 +0000 (15:20 -0700)]
MDRequest: dump internal op names as well as IDs

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDCache: remove #if 0'd code
Greg Farnum [Fri, 1 Aug 2014 13:07:48 +0000 (06:07 -0700)]
MDCache: remove #if 0'd code

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agomdstypes: add a same_sums() function to nest_info_t
Greg Farnum [Fri, 26 Sep 2014 01:02:58 +0000 (18:02 -0700)]
mdstypes: add a same_sums() function to nest_info_t

operator== is checking equality of the version as well, but I want
something I can use to check that the internal sums match. This is useful
for eg comparing the sums of a set of dirfrags to the tally stored in
the inode.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agotest/mds: unit tests for the inode_backtrace_t and inode_t compare() functions
Greg Farnum [Fri, 3 Oct 2014 21:33:56 +0000 (14:33 -0700)]
test/mds: unit tests for the inode_backtrace_t and inode_t compare() functions

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agomdstypes: write inode_t::compare() function
Greg Farnum [Wed, 1 Oct 2014 01:07:30 +0000 (18:07 -0700)]
mdstypes: write inode_t::compare() function

This compares one inode_t against another, seeing which version is newer
and checking that differences in the data members make sense given that.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDS: add operator==() and compare() for inode_backtrace_t
Greg Farnum [Thu, 10 Jul 2014 00:09:51 +0000 (17:09 -0700)]
MDS: add operator==() and compare() for inode_backtrace_t

The compare() function checks one backtrace against another and indicates
if they're equivalent (or divergent!) and the relative freshness.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoMDS: CInode: add a fetch_backtrace() utility function
Greg Farnum [Tue, 8 Jul 2014 23:21:34 +0000 (16:21 -0700)]
MDS: CInode: add a fetch_backtrace() utility function

Expose MDCache::fetch_backtrace and call it from the CInode context.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agomds: add an MDSInternalContextWrapper and MDSIOContextWrapper
Greg Farnum [Thu, 28 Aug 2014 00:37:28 +0000 (17:37 -0700)]
mds: add an MDSInternalContextWrapper and MDSIOContextWrapper

These let us wrap generic function tooling up inside of the appropriate
type-checking, and verify we haven't done anything too stupid.

Signed-off-by: Greg Farnum <greg@inktank.com>
10 years agoqa/workunits/fs/misc: combine sudo and echo effectively
Greg Farnum [Fri, 7 Nov 2014 01:59:22 +0000 (17:59 -0800)]
qa/workunits/fs/misc: combine sudo and echo effectively

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agoqa: use sudo even more when rsyncing /usr
Greg Farnum [Fri, 7 Nov 2014 01:48:01 +0000 (17:48 -0800)]
qa: use sudo even more when rsyncing /usr

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agoMerge pull request #2593 from cernceph/wip-reusepart
Loic Dachary [Thu, 6 Nov 2014 21:02:43 +0000 (22:02 +0100)]
Merge pull request #2593 from cernceph/wip-reusepart

ceph-disk: set guid if reusing a journal partition

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Loic Dachary <loic-201408@dachary.org>
10 years agoMerge pull request #2871 from branto1/wip-systemd-run-not-avail
Loic Dachary [Thu, 6 Nov 2014 15:44:54 +0000 (16:44 +0100)]
Merge pull request #2871 from branto1/wip-systemd-run-not-avail

Fix rhbz#1157938

Reviewed-by: Loic Dachary <loic-201408@dachary.org>
10 years agoFedora 19 uses systemd but there is no systemd-run available in the release (rhbz... 2871/head
Boris Ranto [Thu, 6 Nov 2014 14:38:51 +0000 (15:38 +0100)]
Fedora 19 uses systemd but there is no systemd-run available in the release (rhbz#1157938), this patch makes sure that the init scripts check for availability of systemd-run before they use it (otherwise, they fall back to the default method)

Signed-off-by: Boris Ranto <branto@redhat.com>
10 years agoFix tests on btrfs: leftover subvolumes removed 2869/head
Federico Gimenez [Wed, 5 Nov 2014 14:58:36 +0000 (15:58 +0100)]
Fix tests on btrfs: leftover subvolumes removed

Signed-off-by: Federico Gimenez <fgimenez@coit.es>
10 years agoMerge pull request #2859 from ceph/wip-9877
Josh Durgin [Thu, 6 Nov 2014 12:18:41 +0000 (13:18 +0100)]
Merge pull request #2859 from ceph/wip-9877

rgw: RGWRados::get_obj() returns wrong len if len == 0

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
10 years agoMerge pull request #2865 from ceph/wip-9479
Josh Durgin [Thu, 6 Nov 2014 12:14:29 +0000 (13:14 +0100)]
Merge pull request #2865 from ceph/wip-9479

rgw: send back ETag on S3 object copy

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
10 years agoMerge pull request #2866 from ceph/wip-9973
Josh Durgin [Thu, 6 Nov 2014 12:13:17 +0000 (13:13 +0100)]
Merge pull request #2866 from ceph/wip-9973

rgw: remove swift user manifest (DLO) hash calculation

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
10 years agoMerge pull request #2867 from ceph/wip-9918
Josh Durgin [Thu, 6 Nov 2014 12:09:15 +0000 (13:09 +0100)]
Merge pull request #2867 from ceph/wip-9918

rgw: update swift subuser perm masks when authenticating

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
10 years agoMerge pull request #2864 from ceph/wip-9478
Josh Durgin [Thu, 6 Nov 2014 12:05:32 +0000 (13:05 +0100)]
Merge pull request #2864 from ceph/wip-9478

rgw: S3 object copy content type fix

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
10 years agoMerge pull request #2868 from zhouyuan/bench_tool_isa
Loic Dachary [Thu, 6 Nov 2014 10:12:12 +0000 (11:12 +0100)]
Merge pull request #2868 from zhouyuan/bench_tool_isa

EC: Allow bench.sh to test ISA backend also

Reviewed-by: Loic Dachary <loic-201408@dachary.org>
10 years agoEC: Allow bench.sh to test ISA backend also 2868/head
Yuan Zhou [Thu, 6 Nov 2014 07:46:27 +0000 (15:46 +0800)]
EC: Allow bench.sh to test ISA backend also

Update bench.sh/plot tool to cover ISA backend.
ISA will output a fake echinique 'cauchy_good' so the plot tool
don't need to be changed.

Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
10 years agorgw: update swift subuser perm masks when authenticating 2867/head
Yehuda Sadeh [Wed, 5 Nov 2014 22:38:46 +0000 (14:38 -0800)]
rgw: update swift subuser perm masks when authenticating

Fixes: #9918
Backport: firefly, giant
It seems that we weren't setting the swift perm mask correctly.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agorgw: remove swift user manifest (DLO) hash calculation 2866/head
Yehuda Sadeh [Wed, 5 Nov 2014 21:40:55 +0000 (13:40 -0800)]
rgw: remove swift user manifest (DLO) hash calculation

Fixes: #9973
Backport: firefly, giant

Previously we were iterating through the parts, creating hash of the
parts etags (as S3 does for multipart uploads). However, swift just
calculates the etag for the empty manifest object.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agorgw: send back ETag on S3 object copy 2865/head
Yehuda Sadeh [Wed, 5 Nov 2014 21:28:02 +0000 (13:28 -0800)]
rgw: send back ETag on S3 object copy

Fixes: #9479
Backport: firefly, giant
We didn't send the etag back correctly. Original code assumed the etag
resided in the attrs, but attrs only contained request attrs.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agorgw: S3 object copy content type fix 2864/head
Yehuda Sadeh [Wed, 5 Nov 2014 20:35:42 +0000 (12:35 -0800)]
rgw: S3 object copy content type fix

Fixes: #9478
Backport: firefly, giant
Content type for S3 object copy response should be set to
application/xml.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agoObjectStore: Fix a error comment.
Jianpeng Ma [Mon, 27 Oct 2014 03:29:01 +0000 (11:29 +0800)]
ObjectStore: Fix a error comment.

Reviewed-by: Sage Weil <sage@redhat.com>
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
10 years agoObjectStore: Don't use largest_data_off to calc data_align.
Jianpeng Ma [Mon, 27 Oct 2014 03:22:13 +0000 (11:22 +0800)]
ObjectStore: Don't use largest_data_off to calc data_align.

If largest_data_off % CEPH_PAGE_SIZE != 0, the get_data_aligment return
a erro value. This make the FileJouranl::align_bl to memcopy much data.

Tested-by: Sage Weil <sage@redhat.com>
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
10 years agobuffer: Add _memcopy_count to track total count of memcopy by rebuild/rebuild_page_al...
Jianpeng Ma [Fri, 24 Oct 2014 08:11:15 +0000 (16:11 +0800)]
buffer: Add _memcopy_count to track total count of memcopy by rebuild/rebuild_page_aligned/c_str.

Using thie filed, we know the payload of
rebuild/rebuild_page_aligned/c_str and tune performance accroding.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
Reviewed-by: Sage Weil <sage@redhat.com>
10 years agoosd: cache pool: delete dead code in ReplicatedPG::agent_choose_mode 2860/head
Xinze Chi [Wed, 5 Nov 2014 08:24:36 +0000 (08:24 +0000)]
osd: cache pool: delete dead code in ReplicatedPG::agent_choose_mode

Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
10 years agorgw: RGWRados::get_obj() returns wrong len if len == 0 2859/head
Yehuda Sadeh [Wed, 5 Nov 2014 06:05:03 +0000 (22:05 -0800)]
rgw: RGWRados::get_obj() returns wrong len if len == 0

Fixes: #9877
We only updated if len was > 0, should update it if r >= 0. This was the
culprit for issue #9877.
Backport: giant, firefly

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agoMerge pull request #2856 from XinzeChi/master
Sage Weil [Tue, 4 Nov 2014 22:59:10 +0000 (14:59 -0800)]
Merge pull request #2856 from XinzeChi/master

osd: cache pool: flush object ignoring cache min flush age when cache pool is full

Backport: giant, firefly
Reviewed-by: Sage Weil <sage@redhat.com>
10 years agoosd: cache pool: flush object ignoring cache min flush age when cache pool is full 2856/head
Xinze Chi [Wed, 5 Nov 2014 01:00:01 +0000 (01:00 +0000)]
osd: cache pool: flush object ignoring cache min flush age when cache pool is full
Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
10 years agodoc: Edited Key/Value store config reference.
John Wilkins [Tue, 4 Nov 2014 20:02:47 +0000 (12:02 -0800)]
doc: Edited Key/Value store config reference.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
10 years agodoc: Added Key/Value store config reference to index.
John Wilkins [Tue, 4 Nov 2014 20:02:28 +0000 (12:02 -0800)]
doc: Added Key/Value store config reference to index.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
10 years agoMerge pull request #2854 from ceph/wip-doc-openstack-juno
John Wilkins [Mon, 3 Nov 2014 23:08:11 +0000 (15:08 -0800)]
Merge pull request #2854 from ceph/wip-doc-openstack-juno

doc: Update for OpenStack Juno.

New users working with Nova (Juno) noted that libvirt settings are now under a [libvirt] section, and truncate the leading libvirt_. Made subsections for Havana and Icehouse, added a new subsection for Juno.

10 years agodoc: Update for OpenStack Juno. 2854/head
John Wilkins [Mon, 3 Nov 2014 22:04:33 +0000 (14:04 -0800)]
doc: Update for OpenStack Juno.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
10 years agoMerge pull request #2849 from ceph/wip-buffer
Sage Weil [Sun, 2 Nov 2014 23:17:38 +0000 (15:17 -0800)]
Merge pull request #2849 from ceph/wip-buffer

RFC: buffer: implement list::get_contiguous

Reviewed-by: Haomai Wang <haomaiwang@gmail.com>
10 years agobuffer: implement list::get_contiguous 2849/head
Sage Weil [Sat, 1 Nov 2014 04:29:42 +0000 (21:29 -0700)]
buffer: implement list::get_contiguous

Return a pointer to a contiguous range of the bufferlist, rebuilding
into a contiguous region as needed.  For now, if we need to rebuild,
we just do the whole thing.  We can obviously optimize this later to
rebuild on the necessary region, but this is good enough for the
(presumably) common case where the needed region is already in fact
contiguous.

Signed-off-by: Sage Weil <sage@redhat.com>
10 years agoosd/ReplicatedPG: fix compile error
Sage Weil [Sat, 1 Nov 2014 02:33:59 +0000 (19:33 -0700)]
osd/ReplicatedPG: fix compile error

From 1fef4c3d541cba360738437420ebfa2447d5802e.

Signed-off-by: Sage Weil <sage@redhat.com>
10 years agoMerge pull request #2816 from XinzeChi/master
Sage Weil [Sat, 1 Nov 2014 00:16:30 +0000 (17:16 -0700)]
Merge pull request #2816 from XinzeChi/master

Get the currently atime of the object in cache pool for eviction

Backport: giant, firefly
Reviewed-by: Sage Weil <sage@redhat.com>
10 years agoMerge pull request #2796 from ceph/wip-rwtimer
Sage Weil [Fri, 31 Oct 2014 17:55:01 +0000 (10:55 -0700)]
Merge pull request #2796 from ceph/wip-rwtimer

common/Timer: kill RWTimer

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agoMerge pull request #2826 from wonzhq/evict-atime-nohitset
Sage Weil [Fri, 31 Oct 2014 17:50:31 +0000 (10:50 -0700)]
Merge pull request #2826 from wonzhq/evict-atime-nohitset

osd: tiering: calculate object age during eviction when there is no hit set

Reviewed-by: Sage Weil <sage@redhat.com>
10 years agoMerge pull request #2827 from thesues/fix-hang
Sage Weil [Fri, 31 Oct 2014 17:17:24 +0000 (10:17 -0700)]
Merge pull request #2827 from thesues/fix-hang

Fix rados_shutdown hang forever when using radosstriper

Reviewed-by: Sage Weil <sage@redhat.com>
10 years agoMerge pull request #2813 from ceph/wip-9894
Gregory Farnum [Fri, 31 Oct 2014 15:18:12 +0000 (08:18 -0700)]
Merge pull request #2813 from ceph/wip-9894

client: fix I_COMPLETE_ORDERED checking

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
10 years agoFix rados_shutdown hang forever when using radosstriper 2827/head
Dongmao Zhang [Wed, 29 Oct 2014 03:25:43 +0000 (11:25 +0800)]
Fix rados_shutdown hang forever when using radosstriper

Dear list,

I have met this when I was using radosstriper C API. My program is
roughly like this:

    rados_striper_aio_write
    rados_aio_flush
    rados_aio_wait_for_safe
    rados_aio_release
    rados_striper_destroy
    rados_ioctx_destroy
    rados_shutdown /Hangs here/

In most time, this works well, But the programm occasionally
hangs forever. Output of gstack:

Thread 1 (Thread 0x7fe0afba0760 (LWP 18509)):
0 0x000000330f20822d in pthread_join () from /lib64/libpthread.so.0
1 0x000000347566cea2 in Thread::join(void**) () from
/usr/lib64/librados.so.2
2 0x00000034755ac535 in librados::RadosClient::shutdown() () from
/usr/lib64/librados.so.2
3 0x0000003475592269 in rados_shutdown () from /usr/lib64/librados.so.2
4 0x0000000000402349 in main ()

Thread 4 (Thread 0x7fe0ab14d700 (LWP 18541)):
0 0x000000330f20e264 in __lll_lock_wait () from /lib64/libpthread.so.0
1 0x000000330f209508 in _L_lock_854 () from /lib64/libpthread.so.0
2 0x000000330f2093d7 in pthread_mutex_lock () from
/lib64/libpthread.so.0
3 0x0000003475633af1 in Mutex::Lock(bool) () from
/usr/lib64/librados.so.2
4 0x00000034755abd37 in librados::RadosClient::put() () from
/usr/lib64/librados.so.2
5 0x0000003475592501 in librados::Rados::shutdown() () from
/usr/lib64/librados.so.2
6 0x00007fe0afbba9f7 in
libradosstriper::RadosStriperImpl::CompletionData::~CompletionData() ()
from /usr/lib64/libradosstriper.so.1
7 0x00007fe0afbbaad9 in
libradosstriper::RadosStriperImpl::WriteCompletionData::~WriteCompletionData()
() from /usr/lib64/libradosstriper.so.1
8 0x00007fe0afbc1d75 in RefCountedObject::put() () from
/usr/lib64/libradosstriper.so.1
9 0x00007fe0afbc224d in
libradosstriper::MultiAioCompletionImpl::safe_request(long) () from
/usr/lib64/libradosstriper.so.1
10 0x00000034755c5ce8 in librados::C_AioSafe::finish(int) () from
/usr/lib64/librados.so.2
11 0x00000034755a0e89 in Context::complete(int) () from
/usr/lib64/librados.so.2
12 0x000000347564d4c8 in Finisher::finisher_thread_entry() () from
/usr/lib64/librados.so.2
13 0x000000330f2079d1 in start_thread () from /lib64/libpthread.so.0
14 0x000000330eae886d in clone () from /lib64/libc.so.6

It is obvious that librados::Rados::shutdown is not a thread-safe
function here. It will hang forever. The culprit of this is when
CompletionData is released, it will first notify
"rados_aio_wait_for_safe" to continue, and CompletionData will call
put() to release other data. But if the main thread(Thread 1 here) runs
fast enough, rados_striper_destroy will be executed before other
thread(Thread 4 here)'s releasing refcnf. In this situation, main thread
runs Rados::shutdown() while other thread runs Rados::shutdown() in the
same time.

My suggestion is to let RadosStriperImpl::aio_flush to block until all
the CompletionData has been released. This makes sure other thread will
never call rados_shutdown.

10 years agoMerge pull request #2843 from dachary/wip-9752-past-intervals
Gregory Farnum [Fri, 31 Oct 2014 01:33:15 +0000 (18:33 -0700)]
Merge pull request #2843 from dachary/wip-9752-past-intervals

osd: past_interval display bug on acting

Reviewed-by: Greg Farnum <greg@inktank.com>
10 years agoosd: past_interval display bug on acting 2843/head
Loic Dachary [Thu, 30 Oct 2014 23:49:21 +0000 (00:49 +0100)]
osd: past_interval display bug on acting

The acting array was incorrectly including the primary and up_primary.

http://tracker.ceph.com/issues/9752 Fixes: #9752

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
10 years agoMerge pull request #2835 from leseb/doc-rbd-juno
Josh Durgin [Thu, 30 Oct 2014 20:22:06 +0000 (13:22 -0700)]
Merge pull request #2835 from leseb/doc-rbd-juno

doc: update RBD for Juno

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
10 years agoMerge pull request #2831 from yuyuyu101/async-kqueue
Sage Weil [Thu, 30 Oct 2014 18:35:43 +0000 (11:35 -0700)]
Merge pull request #2831 from yuyuyu101/async-kqueue

AsyncMessenger: Add kqueue support

10 years agoMerge pull request #2839 from ceph/wip-9944
Josh Durgin [Thu, 30 Oct 2014 18:31:34 +0000 (11:31 -0700)]
Merge pull request #2839 from ceph/wip-9944

osdc/Objecter: fix null dref when pool dne

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
10 years agoMerge pull request #2811 from ceph/wip-vstart
Dan Mick [Thu, 30 Oct 2014 18:19:01 +0000 (11:19 -0700)]
Merge pull request #2811 from ceph/wip-vstart

init-ceph: make ./init-ceph behave from src dir on systemd

10 years agoosdc/Objecter: fix null dref when pool dne 2839/head
Sage Weil [Thu, 30 Oct 2014 17:56:36 +0000 (10:56 -0700)]
osdc/Objecter: fix null dref when pool dne

If the base pool does not exist, we need to avoid dereferencing pi.
This simplest fix is to return with POOL_DNE early and skip all of the
checks.

Note that there is one other small semantic change in this function: if
we are using the precalc_pgid then base_oloc pool has to match.  But
the list_objects() caller does that, so we're fine.

Backport: giant
Fixes: #9944
Signed-off-by: Sage Weil <sage@redhat.com>
10 years agoMerge pull request #2837 from ceph/wip-9945
Sage Weil [Thu, 30 Oct 2014 17:05:36 +0000 (10:05 -0700)]
Merge pull request #2837 from ceph/wip-9945

messages: fix COMPAT_VERSION on MClientSession

Reviewed-by: Sage Weil <sage@redhat.com>
10 years agomessages: fix COMPAT_VERSION on MClientSession 2837/head
John Spray [Thu, 30 Oct 2014 16:43:21 +0000 (16:43 +0000)]
messages: fix COMPAT_VERSION on MClientSession

This was incorrectly incremented to 2 by omission
of an explicit COMPAT_VERSION value.

Fixes: #9945
Signed-off-by: John Spray <john.spray@redhat.com>
10 years agoMerge pull request #2830 from ceph/wip-9800-giant
Gregory Farnum [Thu, 30 Oct 2014 16:14:00 +0000 (09:14 -0700)]
Merge pull request #2830 from ceph/wip-9800-giant

client: allow xattr caps in inject_release_failure

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
10 years agoMerge pull request #2834 from dachary/wip-warning
Loic Dachary [Thu, 30 Oct 2014 11:20:36 +0000 (12:20 +0100)]
Merge pull request #2834 from dachary/wip-warning

tests: fix signed/unsigned warning

Reviewed-by: Christophe Courtaut <christophe.courtaut@gmail.com>
10 years agodoc: update RBD for Juno 2835/head
Sébastien Han [Thu, 30 Oct 2014 10:59:14 +0000 (11:59 +0100)]
doc: update RBD for Juno

This commit introduces some updates for the OpenStack Juno release. New
flags have been added, many trailing spaces were removed and a new
recommendation for Glance cache management has been added too.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
10 years agodoc/release-notes: it's 8MB, not 32MB
Sage Weil [Thu, 30 Oct 2014 05:54:26 +0000 (22:54 -0700)]
doc/release-notes: it's 8MB, not 32MB

Signed-off-by: Sage Weil <sage@redhat.com>
10 years agomsg/Pipe: discard delay queue before incoming queue
Sage Weil [Wed, 29 Oct 2014 21:45:11 +0000 (14:45 -0700)]
msg/Pipe: discard delay queue before incoming queue

Shutdown the delayed delivery before the incoming queue in case the
DelayedDelivery thread is busy queuing messages.

Fixes: #9910
Signed-off-by: Sage Weil <sage@redhat.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
10 years agoMerge tag 'v0.87'
Sage Weil [Wed, 29 Oct 2014 20:50:24 +0000 (13:50 -0700)]
Merge tag 'v0.87'

v0.87

10 years agoMerge pull request #2829 from ceph/wip-doc-fs-quickstart
Sage Weil [Wed, 29 Oct 2014 20:08:52 +0000 (13:08 -0700)]
Merge pull request #2829 from ceph/wip-doc-fs-quickstart

doc: include 'fs new' stuff in cephfs quickstart

10 years agoMerge pull request #2828 from Vicente-Cheng/master
Josh Durgin [Wed, 29 Oct 2014 19:16:08 +0000 (12:16 -0700)]
Merge pull request #2828 from Vicente-Cheng/master

rbd: Fix the rbd export when image size more than 2G

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
10 years ago0.87 v0.87
Jenkins [Wed, 29 Oct 2014 18:03:55 +0000 (11:03 -0700)]
0.87

10 years agoAsyncMessenger: Add kqueue support 2831/head
Haomai Wang [Wed, 29 Oct 2014 08:48:07 +0000 (16:48 +0800)]
AsyncMessenger: Add kqueue support

AsyncMessenger will select event driver following epoll, kqueue and
select(now not exists) sequence

Fix #9926
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
10 years agoclient: allow xattr caps in inject_release_failure 2830/head
John Spray [Mon, 27 Oct 2014 12:02:17 +0000 (12:02 +0000)]
client: allow xattr caps in inject_release_failure

Because some test environments generate spurious
rmxattr operations, allow the client to release
'X' caps.  Allows xattr operations to proceed
while still preventing client releasing other caps.

Fixes: #9800
Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit 5691c68a0a44eb2cdf0afb3f39a540f5d42a5c0c)

10 years agodoc: include 'fs new' stuff in cephfs quickstart 2829/head
John Spray [Wed, 29 Oct 2014 10:57:09 +0000 (10:57 +0000)]
doc: include 'fs new' stuff in cephfs quickstart

Not sure how 'quick' this really is now compared with
the full filesystem instructions, but let's not leave
it incomplete.

Signed-off-by: John Spray <john.spray@redhat.com>
10 years agoGet the currently atime of the object in cache pool for eviction 2816/head
Xinze Chi [Wed, 29 Oct 2014 07:11:11 +0000 (07:11 +0000)]
Get the currently atime of the object in cache pool for eviction

Because if there are mutiple atime in agent_state for the same object, we should use the recently one.

Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
10 years agotests: fix signed/unsigned warning 2834/head
Loic Dachary [Tue, 28 Oct 2014 22:38:48 +0000 (23:38 +0100)]
tests: fix signed/unsigned warning

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
10 years agorbd: Fix the rbd export when image size more than 2G 2828/head
Vicente Cheng [Wed, 29 Oct 2014 04:21:11 +0000 (12:21 +0800)]
rbd: Fix the rbd export when image size more than 2G

When using export <image-name> <path> and the size of image is more
than 2G, the previous version about finish() could not handle in
seeking the offset in image and return error.

This is caused by the incorrect variable type. Try to use the correct
variable type to fixed it.

I use another variable which type is uint64_t for confirming seeking
and still use the previous r for return error.

uint64_t is more better than type int for handle lseek64().

Signed-off-by: Vicente Cheng <freeze.bilsted@gmail.com>