]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
10 years agoReplicatedPG: fail a non-blocking flush if the object is being scrubbed 4053/head
Samuel Just [Thu, 20 Nov 2014 22:27:39 +0000 (14:27 -0800)]
ReplicatedPG: fail a non-blocking flush if the object is being scrubbed

Fixes: #8011
Backport: firefly, giant
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit 9b26de3f3653d38dcdfc5b97874089f19d2a59d7)

10 years agoObjecter::_op_submit_with_budget: add timeout before call
Samuel Just [Mon, 2 Feb 2015 21:57:00 +0000 (13:57 -0800)]
Objecter::_op_submit_with_budget: add timeout before call

Objecter::_send_op depends on the ontimeout field being filled in
to avoid 10340 and 9582.

Fixes: 10340
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit cfcfafcb0f33994dbda1efe478ef3ab822ff50d4)

10 years ago0.87.1 v0.87.1
Jenkins [Mon, 23 Feb 2015 20:02:04 +0000 (12:02 -0800)]
0.87.1

10 years agoMerge pull request #3731 from liewegas/wip-10834-giant
Loic Dachary [Tue, 17 Feb 2015 00:09:54 +0000 (01:09 +0100)]
Merge pull request #3731 from liewegas/wip-10834-giant

osd: tolerate sessionless con in fast dispatch path

Reviewed-by: Loic Dachary <ldachary@redhat.com>
10 years agoosd: tolerate sessionless con in fast dispatch path 3731/head
Sage Weil [Tue, 2 Dec 2014 02:15:59 +0000 (18:15 -0800)]
osd: tolerate sessionless con in fast dispatch path

We can now get a session cleared from a Connection at any time.  Change
the assert to an if in ms_fast_dispatch to cope.  It's pretty rare, but it
can happen, especially with delay injection.  In particular, a racing
thread can call mark_down() on us.

Fixes: #10209
Backport: giant
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 01df2227125abf94571b4b0c7bccca57098ed2dc)

10 years agoqa: use correct binary path on rpm-based systems
Josh Durgin [Mon, 2 Feb 2015 15:43:35 +0000 (16:43 +0100)]
qa: use correct binary path on rpm-based systems

Fixes: #10715
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
(cherry picked from commit 05ce2aa1bf030ea225300b48e7914577a412b38c)

10 years agoMerge pull request #3407 from ceph/wip-9854-giant
Loic Dachary [Tue, 10 Feb 2015 23:11:57 +0000 (00:11 +0100)]
Merge pull request #3407 from ceph/wip-9854-giant

osdc: Constrain max number of in-flight read requests

10 years agoMerge pull request #3568 from dachary/wip-10471-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 21:01:21 +0000 (22:01 +0100)]
Merge pull request #3568 from dachary/wip-10471-rgw-giant

rgw: use s->bucket_attrs instead of trying to read obj attrs

10 years agoMerge pull request #3263 from dachary/wip-jerasure-giant
Loic Dachary [Tue, 10 Feb 2015 20:59:40 +0000 (21:59 +0100)]
Merge pull request #3263 from dachary/wip-jerasure-giant

erasure-code: update links to jerasure upstream (giant)

10 years agoMerge pull request #3191 from ceph/giant-10277
Loic Dachary [Tue, 10 Feb 2015 20:59:17 +0000 (21:59 +0100)]
Merge pull request #3191 from ceph/giant-10277

Giant 10277

10 years agoMerge pull request #3186 from ceph/wip-giant-mon-backports
Loic Dachary [Tue, 10 Feb 2015 20:58:52 +0000 (21:58 +0100)]
Merge pull request #3186 from ceph/wip-giant-mon-backports

mon: backports for #9987 against giant

10 years agoMerge pull request #3185 from dachary/wip-10325-cauchy-giant
Loic Dachary [Tue, 10 Feb 2015 20:58:29 +0000 (21:58 +0100)]
Merge pull request #3185 from dachary/wip-10325-cauchy-giant

erasure-code: relax cauchy w restrictions (giant)

10 years agoMerge pull request #3178 from dachary/wip-9998-crush-underfloat-giant
Loic Dachary [Tue, 10 Feb 2015 20:58:05 +0000 (21:58 +0100)]
Merge pull request #3178 from dachary/wip-9998-crush-underfloat-giant

crush: fix weight underfloat issue (giant)

10 years agoMerge pull request #3579 from dachary/wip-9877-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:57:50 +0000 (21:57 +0100)]
Merge pull request #3579 from dachary/wip-9877-rgw-giant

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

10 years agoMerge pull request #3168 from ceph/wip-8797-giant
Loic Dachary [Tue, 10 Feb 2015 20:57:18 +0000 (21:57 +0100)]
Merge pull request #3168 from ceph/wip-8797-giant

Wip 8797 giant

10 years agoMerge pull request #3582 from dachary/wip-10062-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:56:53 +0000 (21:56 +0100)]
Merge pull request #3582 from dachary/wip-10062-rgw-giant

rgw: s3 keystone auth fixes

10 years agoMerge pull request #3581 from dachary/wip-9918-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:56:37 +0000 (21:56 +0100)]
Merge pull request #3581 from dachary/wip-9918-rgw-giant

rgw: update swift subuser perm masks when authenticating

10 years agoMerge pull request #3580 from dachary/wip-9907-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:56:17 +0000 (21:56 +0100)]
Merge pull request #3580 from dachary/wip-9907-rgw-giant

fix can not disable max_size quota

10 years agoMerge pull request #3083 from dachary/wip-10211-erasure-code-buffer-alignement-giant
Loic Dachary [Tue, 10 Feb 2015 20:55:56 +0000 (21:55 +0100)]
Merge pull request #3083 from dachary/wip-10211-erasure-code-buffer-alignement-giant

erasure-code: enforce chunk size alignment (giant)

10 years agoMerge pull request #3577 from dachary/wip-9587-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:55:23 +0000 (21:55 +0100)]
Merge pull request #3577 from dachary/wip-9587-rgw-giant

init-radosgw.sysv: set ulimit -n before starting daemon

10 years agoMerge pull request #3576 from dachary/wip-5595-9576-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:54:58 +0000 (21:54 +0100)]
Merge pull request #3576 from dachary/wip-5595-9576-rgw-giant

update object content-length doesn't work correctly

10 years agoMerge pull request #3575 from dachary/wip-9479-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:54:13 +0000 (21:54 +0100)]
Merge pull request #3575 from dachary/wip-9479-rgw-giant

rgw: send back ETag on S3 object copy

10 years agoMerge pull request #3574 from dachary/wip-9478-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:53:55 +0000 (21:53 +0100)]
Merge pull request #3574 from dachary/wip-9478-rgw-giant

rgw: S3 object copy content type fix

10 years agoMerge pull request #3573 from dachary/wip-9254-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:53:33 +0000 (21:53 +0100)]
Merge pull request #3573 from dachary/wip-9254-rgw-giant

rgw: http headers need to end with \r\n

10 years agoMerge pull request #3572 from dachary/wip-9973-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:53:15 +0000 (21:53 +0100)]
Merge pull request #3572 from dachary/wip-9973-rgw-giant

rgw: remove swift user manifest (DLO) hash calculation

10 years agoMerge pull request #3571 from dachary/wip-8911-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:52:54 +0000 (21:52 +0100)]
Merge pull request #3571 from dachary/wip-8911-rgw-giant

rgw: swift GET / HEAD object returns X-Timestamp field

10 years agoMerge pull request #3570 from dachary/wip-10701-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:52:36 +0000 (21:52 +0100)]
Merge pull request #3570 from dachary/wip-10701-rgw-giant

rgw: use strict_strtoll() for content length

10 years agoMerge pull request #3569 from dachary/wip-10103-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:52:00 +0000 (21:52 +0100)]
Merge pull request #3569 from dachary/wip-10103-rgw-giant

rgw-admin: create subuser if needed when creating user

10 years agoMerge pull request #3567 from dachary/wip-10307-rgw-giant
Loic Dachary [Tue, 10 Feb 2015 20:51:06 +0000 (21:51 +0100)]
Merge pull request #3567 from dachary/wip-10307-rgw-giant

rgw: use s->bucket_attrs instead of trying to read obj attrs

10 years agoMerge pull request #3443 from ceph/wip-10590-giant
Loic Dachary [Tue, 10 Feb 2015 20:50:34 +0000 (21:50 +0100)]
Merge pull request #3443 from ceph/wip-10590-giant

rbd: ensure aio_write buffer isn't invalidated during image import

10 years agoMerge pull request #3557 from dachary/wip-10688-boost-157-giant
Loic Dachary [Tue, 10 Feb 2015 20:50:14 +0000 (21:50 +0100)]
Merge pull request #3557 from dachary/wip-10688-boost-157-giant

support Boost 1.57.0

10 years agoMerge pull request #2954 from sponce/giant
Loic Dachary [Tue, 10 Feb 2015 20:49:47 +0000 (21:49 +0100)]
Merge pull request #2954 from sponce/giant

Fixed trivial locking issue in the trunc method of libradosstriper - Giant branch

10 years agoMerge pull request #3405 from ceph/wip-10299-giant
Loic Dachary [Tue, 10 Feb 2015 20:49:20 +0000 (21:49 +0100)]
Merge pull request #3405 from ceph/wip-10299-giant

librbd: complete all pending aio ops prior to closing image

10 years agoMerge pull request #3403 from ceph/wip-10270-giant
Loic Dachary [Tue, 10 Feb 2015 20:48:49 +0000 (21:48 +0100)]
Merge pull request #3403 from ceph/wip-10270-giant

librbd: gracefully handle deleted/renamed pools

10 years agoMerge pull request #3356 from liewegas/wip-msgr-giant
Loic Dachary [Tue, 10 Feb 2015 20:48:20 +0000 (21:48 +0100)]
Merge pull request #3356 from liewegas/wip-msgr-giant

msgr: fast dispatch backports for giant

10 years agofsync-tester: print info about PATH and locations of lsof lookup
Greg Farnum [Fri, 6 Feb 2015 05:12:17 +0000 (21:12 -0800)]
fsync-tester: print info about PATH and locations of lsof lookup

We're seeing the lsof invocation fail (as not found) in testing and nobody can
identify why. Since attempting to reproduce the issue has not worked, this
patch will gather data from a genuinely in-vitro location.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
(cherry picked from commit a85051483874ff5b8b0fb50426a3577040457596)

10 years agoosdc: Constrain max number of in-flight read requests 3407/head
Jason Dillaman [Mon, 27 Oct 2014 18:47:19 +0000 (14:47 -0400)]
osdc: Constrain max number of in-flight read requests

Constrain the number of in-flight RADOS read requests to the
cache size.  This reduces the chance of the cache memory
ballooning during certain scenarios like copy-up which can
invoke many concurrent read requests.

Fixes: #9854
Backport: giant, firefly, dumpling
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agorgw: check keystone auth also for s3 post requests 3582/head
Abhishek Lekshmanan [Mon, 22 Dec 2014 14:27:19 +0000 (19:57 +0530)]
rgw: check keystone auth also for s3 post requests

This patch adds keystone auth for s3 post requests, once a user fails in
cephx authentication, they are checked for keystone if configured.

Fixes #10062
Signed-off-by: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
(cherry picked from commit 8b3dfc9472022ea45ad24e02e0aa21dfdad798f8)

10 years agorgw: check for timestamp for s3 keystone auth
Abhishek Lekshmanan [Mon, 17 Nov 2014 12:07:00 +0000 (17:37 +0530)]
rgw: check for timestamp for s3 keystone auth

This commit ensures that we check for timestamp of s3 request is within
acceptable grace time of radosgw
Addresses some failures in #10062
Fixes: #10062
Signed-off-by: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
(cherry picked from commit 4b35ae067fef9f97b886afe112d662c61c564365)

10 years agorgw: update swift subuser perm masks when authenticating 3581/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>
(cherry picked from commit 5d9f36f757a7272c24d2c9adc31db1ed5e712992)

10 years agofix can not disable max_size quota 3580/head
Lei Dong [Mon, 27 Oct 2014 02:29:48 +0000 (10:29 +0800)]
fix can not disable max_size quota

Currently if we enable quota and set max_size = -1, it doesn’t
mean max_size is unlimited as expected. Instead, it means object
with any size is not allowed to upload because of “QuotaExceeded”.
The root cause is the function rgw_rounded_kb which convert max_size
to max_size_kb returns 0 for -1 because it takes an unsigned int
but we pass an int to it. A simple fix is check max_size before
it’s rounded to max_size_kb.

Test case:
1 enable and set quota:
radosgw-admin quota enable --uid={user_id} --quota-scope=user
radosgw-admin quota set --quota-scope=user --uid={user_id}\
 --max-objects=100 --max-size=-1
2 upload any object with non-zero length
it will return 403 with “QuotaExceeded” and return 200 if you apply the fix.

Fixes: #9907
Backport: giant, firefly
Signed-off-by: Dong Lei leidong@yahoo-inc.com
(cherry picked from commit abd3fd3ef9ee9999b99811937af60b7a5e673e35)

10 years agorgw: RGWRados::get_obj() returns wrong len if len == 0 3579/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>
(cherry picked from commit fe7bf06366adaf787816d1e68f5e3f68e8c91134)

10 years agoinit-radosgw.sysv: set ulimit -n before starting daemon 3577/head
Sage Weil [Wed, 22 Oct 2014 00:59:30 +0000 (17:59 -0700)]
init-radosgw.sysv: set ulimit -n before starting daemon

If we do the ulimit inside the daemon command we will have already
dropped privs and will fail.

Fixes: #9587
Backport: giant, firefly
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 9803cedf54a7baff45ccd0e0f65d2bc220958a46)

10 years agorgw: PutObjMetadata, clear bufferlist before appending into it 3576/head
Yehuda Sadeh [Tue, 23 Sep 2014 19:42:10 +0000 (12:42 -0700)]
rgw: PutObjMetadata, clear bufferlist before appending into it

Fixes: #9576
Backport: firefly, dumpling

We need to completely rewrite the bufferlist, not append into it.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 44cfd88dc65d30f4295743c5834768bb13f7b805)

10 years agorgw: rados->set_attrs() updates bucket index
Yehuda Sadeh [Tue, 23 Sep 2014 19:43:55 +0000 (12:43 -0700)]
rgw: rados->set_attrs() updates bucket index

Fixes: #5595
Backport: dumpling, firefly
We need to update the bucket index when updating object attrs, otherwise
we're missing meta changes that need to be registered. It also
solves issue of bucket index not knowing about object acl changes,
although this one still requires some more work.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit f833f12a200ecc2c4f74ddb443d6fa61b7ad14db)

10 years agorgw: send back ETag on S3 object copy 3575/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>
(cherry picked from commit b1bfc3a7e0c9088f01f8ff770ae14f569fbc570d)

10 years agorgw: S3 object copy content type fix 3574/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>
(cherry picked from commit 31963459a0a869c4d32f55baa629f36df33eaa90)

10 years agorgw: http headers need to end with \r\n 3573/head
Yehuda Sadeh [Fri, 12 Dec 2014 19:20:26 +0000 (11:20 -0800)]
rgw: http headers need to end with \r\n

Fixes: #9254
Backport: firefly, giant

Reported-by: Benedikt Fraunhofer <fraunhofer@traced.net>
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 7409ab3df18fb312dd6c9f79084f889c523afdce)

10 years agorgw: remove swift user manifest (DLO) hash calculation 3572/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>
(cherry picked from commit ef6d3ad964d34bc526dc4435486bd5c8cdc3b230)

10 years agorgw: swift GET / HEAD object returns X-Timestamp field 3571/head
Yehuda Sadeh [Tue, 30 Sep 2014 21:15:47 +0000 (14:15 -0700)]
rgw: swift GET / HEAD object returns X-Timestamp field

Fixes: #8911
Backport: giant, firefly, dumpling
Swift clients expect X-Timestamp header, dump it.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 5b41d80b7fb9ed96c26801fc42c044191bb18d84)

10 years agorgw: use strict_strtoll() for content length 3570/head
Yehuda Sadeh [Fri, 30 Jan 2015 18:51:52 +0000 (10:51 -0800)]
rgw: use strict_strtoll() for content length

instead of strict_strtol().

Backport: giant, firefly
Fixes: #10701
Reported-by: Axel Dunkel <ad@dunkel.de>
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 1c25dbafb45caf1b261cfcec15b868a2ba6b5fef)

10 years agorgw-admin: create subuser if needed when creating user 3569/head
Yehuda Sadeh [Thu, 20 Nov 2014 18:36:05 +0000 (10:36 -0800)]
rgw-admin: create subuser if needed when creating user

Fixes: #10103
Backport: firefly, giant
This turned up after fixing #9973. Earlier we also didn't create the
subuser in this case, but we didn't really read the subuser info when it
was authenticating. Now we do that as required, so we end up failing the
authentication. This only applies to cases where a subuser was created
using 'user create', and not the 'subuser create' command.

Reviewed-by: Sage Weil <sage@redhat.com>
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 9ba17a321db06d3d76c9295e411c76842194b25c)

10 years agorgw: use s->bucket_attrs instead of trying to read obj attrs 3568/head
Yehuda Sadeh [Sat, 13 Dec 2014 01:07:30 +0000 (17:07 -0800)]
rgw: use s->bucket_attrs instead of trying to read obj attrs

Fixes: #10307
Backport: firefly, giant

This is needed, since we can't really read the bucket attrs by trying to
read the bucket entry point attrs. We already have the bucket attrs
anyway, use these.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 5cf193c8686196d5235889e68cb5ea8f1fc8e556)

10 years agorgw: use s->bucket_attrs instead of trying to read obj attrs 3567/head
Yehuda Sadeh [Sat, 13 Dec 2014 01:07:30 +0000 (17:07 -0800)]
rgw: use s->bucket_attrs instead of trying to read obj attrs

Fixes: #10307
Backport: firefly, giant

This is needed, since we can't really read the bucket attrs by trying to
read the bucket entry point attrs. We already have the bucket attrs
anyway, use these.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 5cf193c8686196d5235889e68cb5ea8f1fc8e556)

10 years agoosd: Cleanup boost optionals 3557/head
William A. Kennington III [Sun, 21 Sep 2014 05:52:31 +0000 (22:52 -0700)]
osd: Cleanup boost optionals

Signed-off-by: William A. Kennington III <william@wkennington.com>
(cherry picked from commit a53ead14c113047567177630b4906136a2109b65)

10 years agosupport Boost 1.57.0
Petr Machata [Thu, 29 Jan 2015 17:15:02 +0000 (10:15 -0700)]
support Boost 1.57.0

Sometime after 1.55, boost introduced a forward declaration of
operator<< in optional.hpp. In 1.55 and earlier, when << was used
without the _io having been included, what got dumped was an implicit
bool conversion.

http://tracker.ceph.com/issues/10688 Refs: #10688
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
(cherry picked from commit 85717394c33137eb703a7b88608ec9cf3287f67a)

Conflicts:
src/include/encoding.h
        trivial conflict

10 years agorgw: send http status reason explicitly in fastcgi
Yehuda Sadeh [Fri, 24 Oct 2014 00:39:42 +0000 (17:39 -0700)]
rgw: send http status reason explicitly in fastcgi

There are issues in certain versions of apache 2.4, where the reason is
not sent back. Instead, just provide the reason explicitly.

Backport: firefly, giant

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit a9dd4af401328e8f9071dee52470a0685ceb296b)

10 years agorgw: fix partial GET in swift
Yehuda Sadeh [Fri, 16 Jan 2015 00:31:22 +0000 (16:31 -0800)]
rgw: fix partial GET in swift

Fixes: #10553
backport: firefly, giant

Don't set the ret code to reflect partial download, just set the
response status when needed.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 7e1553cedff90fa0fefded65cde87ad068eb5f0c)

10 years agoosd: handle no-op write with snapshot case
Sage Weil [Tue, 16 Dec 2014 01:04:32 +0000 (17:04 -0800)]
osd: handle no-op write with snapshot case

If we have a transaction that does something to the object but it !exists
both before and after, we will continue through the write path.  If the
snapdir object already exists, and we try to create it again, we will
leak a snapdir obc and lock and later crash on an assert when the obc
is destroyed:

0> 2014-12-06 01:49:51.750163 7f08d6ade700 -1 osd/osd_types.h: In function 'ObjectContext::~ObjectContext()' thread 7f08d6ade700 time 2014-12-06 01:49:51.605411
osd/osd_types.h: 2944: FAILED assert(rwstate.empty())

Fix is to not recreated the snapdir if it already exists.

Fixes: #10262
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 02fae9fc54c10b5a932102bac43f32199d4cb612)

10 years agoMerge pull request #3502 from ceph/wip-10382-giant
Gregory Farnum [Tue, 27 Jan 2015 17:40:16 +0000 (09:40 -0800)]
Merge pull request #3502 from ceph/wip-10382-giant

[giant backport] mds: handle heartbeat_reset during shutdown

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
10 years agomds: handle heartbeat_reset during shutdown 3502/head
John Spray [Wed, 14 Jan 2015 10:35:53 +0000 (10:35 +0000)]
mds: handle heartbeat_reset during shutdown

Because any thread might grab mds_lock and call heartbeat_reset
immediately after a call to suicide() completes, this needs
to be handled as a special case where we tolerate MDS::hb having
already been destroyed.

Fixes: #10382
Signed-off-by: John Spray <john.spray@redhat.com>
10 years agoceph_test_rados_api_misc: do not assert rbd feature match
Sage Weil [Tue, 20 Jan 2015 02:28:20 +0000 (18:28 -0800)]
ceph_test_rados_api_misc: do not assert rbd feature match

This test fails on upgrades when we (or the server) have new
features.  Make it less fragile.

Fixes: #10576
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 9147c62989871cea8b3a85b02c53017825efb55b)

10 years agorbd: ensure aio_write buffer isn't invalidated during image import 3443/head
Jason Dillaman [Wed, 21 Jan 2015 19:55:02 +0000 (14:55 -0500)]
rbd: ensure aio_write buffer isn't invalidated during image import

The buffer provided to aio_write shouldn't be invalidated until
after aio_write has indicated that the operation has completed.

Fixes: #10590
Backport: giant
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
(cherry picked from commit 4d3b49e9d62bc1040356ca3ebe7f90c181734eb6)

10 years agolibrbd: complete all pending aio ops prior to closing image 3405/head
Jason Dillaman [Mon, 15 Dec 2014 15:53:53 +0000 (10:53 -0500)]
librbd: complete all pending aio ops prior to closing image

It was possible for an image to be closed while aio operations
were still outstanding.  Now all aio operations are tracked and
completed before the image is closed.

Fixes: #10299
Backport: giant, firefly, dumpling
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agolibrbd: gracefully handle deleted/renamed pools 3403/head
Jason Dillaman [Mon, 19 Jan 2015 15:28:56 +0000 (10:28 -0500)]
librbd: gracefully handle deleted/renamed pools

snap_unprotect and list_children both attempt to scan all
pools. If a pool is deleted or renamed during the scan,
the methods would previously return -ENOENT. Both methods
have been modified to more gracefully handle this condition.

Fixes: #10270
Backport: giant, firefly
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agorgw: change multipart upload id magic
Yehuda Sadeh [Fri, 12 Dec 2014 13:24:01 +0000 (05:24 -0800)]
rgw: change multipart upload id magic

Fixes: #10271
Backport: firefly, giant

Some clients can't sign requests correctly with the original magic
prefix.

Reported-by: Georgios Dimitrakakis <giorgis@acmac.uoc.gr>
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 5fc7a0be67a03ed63fcc8408f8d71a31a1841076)

10 years agorgw: url decode http query params correctly
Yehuda Sadeh [Thu, 11 Dec 2014 17:07:10 +0000 (09:07 -0800)]
rgw: url decode http query params correctly

Fixes: #10271
Backport: firefly

This got broken by the fix for #8702. Since we now only url_decode if
we're in query, we need to specify that we're in query when decoding
these args.

Reported-by: Georgios Dimitrakakis <giorgis@acmac.uoc.gr>
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 21e07eb6abacb085f81b65acd706b46af29ffc03)

10 years agoqa: ignore duplicates in rados ls
Josh Durgin [Wed, 14 Jan 2015 23:01:38 +0000 (15:01 -0800)]
qa: ignore duplicates in rados ls

These can happen with split or with state changes due to reordering
results within the hash range requested. It's easy enough to filter
them out at this stage.

Backport: giant, firefly
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
(cherry picked from commit e7cc6117adf653a4915fb7a75fac68f8fa0239ec)

10 years agoRevert "Objecter: disable fast dispatch of CEPH_MSG_OSD_OPREPLY messages" 3356/head
Sage Weil [Tue, 14 Oct 2014 19:42:40 +0000 (12:42 -0700)]
Revert "Objecter: disable fast dispatch of CEPH_MSG_OSD_OPREPLY messages"

This reverts commit 3f23709c474292f9239f77a6cce26309fc86ce29.

We have changed mark_down() behavior so that it no longer blocks on
fast dispatch.  This makes the objecter reply handler safe again.

Fixes: #9598
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit c9f9e72e558521cb90f90538bc27f995f82d76c2)

10 years agomsg/simple: do not stop_and_wait on mark_down
Sage Weil [Tue, 14 Oct 2014 19:41:48 +0000 (12:41 -0700)]
msg/simple: do not stop_and_wait on mark_down

We originally blocked in mark_down for fast dispatch threads
to complete to avoid various races in the code.  Most of these
were in the OSD itself, where we were not prepared to get
messges on connections that had no attached session.  Since
then, the OSD checks have been cleaned up to handle this.
There were other races we were worried about too, but the
details have been lost in the depths of time.

Instead, take the other route: make mark_down never block on
dispatch.  This lets us remove the special case that
was added in order to cope with fast dispatch calling
mark_down on itself.

Now, the only stop_and_wait() user is the shutdown sequence.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 00907e032011b9d2acd16ea588555cf379830814)

10 years agomsg/Pipe: inject delay in stop_and_wait
Sage Weil [Fri, 31 Oct 2014 23:25:09 +0000 (16:25 -0700)]
msg/Pipe: inject delay in stop_and_wait

Inject a delay in stop_and_wait.  This will mostly affect the connection
race Pipe takeover code which currently calls stop_and_wait while holding
the msgr->lock.  This should make it easier for a racing fast_dispatch
method to get stuck on a call that (indirectly) needs the msgr lock.
See #9921.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 2fe5c4c305218fdb1771857e4e0ef7c98a8d0fb6)

10 years agoSimpleMessenger: Pipe: do not block on takeover while holding global lock
Greg Farnum [Tue, 28 Oct 2014 23:45:43 +0000 (16:45 -0700)]
SimpleMessenger: Pipe: do not block on takeover while holding global lock

We previously were able to cause deadlocks:
1) Existing pipe is fast_dispatching
2) Replacement incoming pipe is accepted
  *) blocks on stop_and_wait() of existing Pipe
3) External things are blocked on SimpleMessenger::lock() while
  blocking completion of the fast dispatch.

To resolve this, if we detect that an existing Pipe we want to take over is
in the process of fast dispatching, we unlock our locks and wait on it to
finish. Then we go back to the lookup step and retry.

The effect of this should be safe:
1) We are not making any changes to the existing Pipe in new ways
2) We have not registered the new Pipe anywhere
3) We have not sent back any replies based on Messenger state to
   the remote endpoint.

Backport: giant
Fixes: #9921
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
(cherry picked from commit 2d6980570af2226fdee0edfcfe5a8e7f60fae615)

10 years agoosd: requeue PG when we skip handling a peering event
Sage Weil [Thu, 8 Jan 2015 21:34:52 +0000 (13:34 -0800)]
osd: requeue PG when we skip handling a peering event

If we don't handle the event, we need to put the PG back into the peering
queue or else the event won't get processed until the next event is
queued, at which point we'll be processing events with a delay.

The queue_null is not necessary (and is a waste of effort) because the
event is still in pg->peering_queue and the PG is queued.

Note that this only triggers when we exceeed osd_map_max_advance, usually
when there is a lot of peering and recovery activity going on.  A
workaround is to increase that value, but if you exceed osd_map_cache_size
you expose yourself to crache thrashing by the peering work queue, which
can cause serious problems with heavily degraded clusters and bit lots of
people on dumpling.

Backport: giant, firefly
Fixes: #10431
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 492ccc900c3358f36b6b14a207beec071eb06707)

10 years agoerasure-code: relax cauchy w restrictions 3185/head
Loic Dachary [Tue, 16 Dec 2014 12:31:30 +0000 (13:31 +0100)]
erasure-code: relax cauchy w restrictions

A restriction that the w parameter of the cauchy technique is limited to
8, 16 or 32 was added incorrectly while refactoring parameter parsing in
the jerasure plugin and must be relaxed.

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

Signed-off-by: Loic Dachary <ldachary@redhat.com>
(cherry picked from commit bb80437f247345502203ad87a7e7bbb5b5602b9a)

10 years agocrush/CrushWrapper: fix create_or_move_item when name exists but item does not 3178/head
Sage Weil [Mon, 24 Nov 2014 02:50:51 +0000 (18:50 -0800)]
crush/CrushWrapper: fix create_or_move_item when name exists but item does not

We were using item_exists(), which simply checks if we have a name defined
for the item.  Instead, use _search_item_exists(), which looks for an
instance of the item somewhere in the hierarchy.  This matches what
get_item_weightf() is doing, which ensures we get a non-negative weight
that converts properly to floating point.

Backport: giant, firefly
Fixes: #9998
Reported-by: Pawel Sadowski <ceph@sadziu.pl>
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 9902383c690dca9ed5ba667800413daa8332157e)

10 years agocrush/builder: prevent bucket weight underflow on item removal
Sage Weil [Sat, 22 Nov 2014 01:47:56 +0000 (17:47 -0800)]
crush/builder: prevent bucket weight underflow on item removal

It is possible to set a bucket weight that is not the sum of the item
weights if you manually modify/build the CRUSH map.  Protect against any
underflow on the bucket weight when removing items.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 8c87e9502142d5b4a282b94f929ae776a49be1dc)

10 years agocrush/CrushWrapper: fix _search_item_exists
Sage Weil [Sat, 22 Nov 2014 01:37:03 +0000 (17:37 -0800)]
crush/CrushWrapper: fix _search_item_exists

Reported-by: Pawel Sadowski <ceph@sadziu.pl>
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit eeadd60714d908a3a033aeb7fd542c511e63122b)

10 years agoIf trusty, use older version of qemu
Warren Usui [Fri, 19 Dec 2014 04:00:28 +0000 (20:00 -0800)]
If trusty, use older version of qemu

Fixes #10319
Signed-off-by: Warren Usui <warren.usui@inktank.com>
(cherry-picked from 46a1a4cb670d30397979cd89808a2e420cef2c11)

10 years agoMerge pull request #3266 from ceph/giant-10415
Sage Weil [Mon, 29 Dec 2014 18:55:22 +0000 (10:55 -0800)]
Merge pull request #3266 from ceph/giant-10415

libcephfs/test.cc: close fd before umount

10 years agoerasure-code: update links to jerasure upstream 3263/head
Loic Dachary [Sun, 28 Dec 2014 09:29:54 +0000 (10:29 +0100)]
erasure-code: update links to jerasure upstream

It moved from bitbucket to jerasure.org

Signed-off-by: Loic Dachary <ldachary@redhat.com>
(cherry picked from commit 8e86f901939f16cc9c8ad7a4108ac4bcf3916d2c)

10 years agolibcephfs/test.cc: close fd before umount 3266/head
Yan, Zheng [Tue, 23 Dec 2014 02:22:00 +0000 (10:22 +0800)]
libcephfs/test.cc: close fd before umount

Fixes: #10415
Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit d3fb563cee4c4cf08ff4ee01782e52a100462429)

10 years agoRemove sepia dependency (use fqdn)
Warren Usui [Wed, 17 Dec 2014 06:01:26 +0000 (22:01 -0800)]
Remove sepia dependency (use fqdn)

Fixes: #10255
Signed-off-by: Warren Usui <warren.usui@inktank.com>
(cherry picked from commit 19dafe164833705225e168a686696fb4e170aba7)

10 years agoclient: use remount to trim kernel dcache 3191/head
Yan, Zheng [Wed, 17 Dec 2014 07:59:44 +0000 (15:59 +0800)]
client: use remount to trim kernel dcache

when remounting a file system, linux kernel trims all unused dentry
in the file system.

Fixes: #10277
Signed-off-by: Yan, Zheng <zyan@redhat.com>
10 years agoclient: cleanup client callback registration
Yan, Zheng [Wed, 17 Dec 2014 07:46:49 +0000 (15:46 +0800)]
client: cleanup client callback registration

Signed-off-by: Yan, Zheng <zyan@redhat.com>
10 years agomon/PGMap and PGMonitor: update last_epoch_clean cache from new osd keys 3186/head
Sage Weil [Sun, 2 Nov 2014 16:50:59 +0000 (08:50 -0800)]
mon/PGMap and PGMonitor: update last_epoch_clean cache from new osd keys

We were only invalidating the cached value from apply_incremental, which
is no longer called on modern clusters.

Fix this by storing the update epoch in the key as well (it is not part
of osd_stat_t).

Backport: giant, firefly, dumpling(?)
Fixes: #9987
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 093c5f0cabeb552b90d944da2c50de48fcf6f564)

10 years agomon/PGMap: invalidate cached min_last_epoch_clean from new-style pg keys
Sage Weil [Sun, 2 Nov 2014 16:49:48 +0000 (08:49 -0800)]
mon/PGMap: invalidate cached min_last_epoch_clean from new-style pg keys

We were only invalidating the cache from the legacy apply_incremental(),
which is no longer called on modern clusters.

Fixes: #9987
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 3fb731b722c50672a5a9de0c86a621f5f50f2d06)

10 years agoMerge pull request #3159 from ceph/wip-10229-giant
Gregory Farnum [Fri, 12 Dec 2014 01:03:07 +0000 (17:03 -0800)]
Merge pull request #3159 from ceph/wip-10229-giant

osdc/Filer: use finisher to execute C_Probe and C_PurgeRange [giant backport]

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
10 years agoosdc/Filer: use finisher to execute C_Probe and C_PurgeRange 3159/head
Yan, Zheng [Thu, 4 Dec 2014 04:18:47 +0000 (12:18 +0800)]
osdc/Filer: use finisher to execute C_Probe and C_PurgeRange

Currently contexts C_Probe/C_PurgeRange are executed while holding
OSDSession::completion_lock. C_Probe and C_PurgeRange may call
Objecter::stat() and Objecter::remove() respectively, which acquire
Objecter::rwlock. This can cause deadlock because there is intermediate
dependency between Objecter::rwlock and OSDSession::completion_lock:

 Objecter::rwlock -> OSDSession::lock -> OSDSession::completion_lock

The fix is exexcute C_Probe/C_PurgeRange in finisher thread.

Fixes: #10229
Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit d3ee89ace660161df7796affbf9a70f3d0dedce1)

10 years agoMerge pull request #3151 from ceph/wip-10288-giant
Gregory Farnum [Thu, 11 Dec 2014 18:47:38 +0000 (10:47 -0800)]
Merge pull request #3151 from ceph/wip-10288-giant

mon: fix `fs ls` on peons [giant backport]

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
10 years agomon: fix `fs ls` on peons 3151/head
John Spray [Thu, 11 Dec 2014 14:00:57 +0000 (14:00 +0000)]
mon: fix `fs ls` on peons

This was incorrectly using pending_mdsmap instead
of mdsmap.  We didn't notice in test because of
single-mon configurations.

Fixes: #10288
Backport: giant

Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit 5559e6aea9e9374ecdac0351777dfd6f5f5d1e67)

10 years agoCall Rados.shutdown() explicitly before exit 3168/head
Dan Mick [Wed, 10 Dec 2014 21:19:53 +0000 (13:19 -0800)]
Call Rados.shutdown() explicitly before exit

This is mostly a demonstration of good behavior, as the resources will
be reclaimed on exit anyway.

Signed-off-by: Dan Mick <dan.mick@redhat.com>
(cherry picked from commit b038e8fbf9103cc42a4cde734b3ee601af6019ea)

10 years agorados.py: remove Rados.__del__(); it just causes problems
Dan Mick [Wed, 10 Dec 2014 21:19:16 +0000 (13:19 -0800)]
rados.py: remove Rados.__del__(); it just causes problems

Recent versions of Python contain a change to thread shutdown that
causes ceph to hang on exit; see http://bugs.python.org/issue21963.
As it turns out, this is relatively easy to avoid by not spawning
threads on exit, as Rados.__del__() will certainly do by calling
shutdown(); I suspect, but haven't proven, that the problem is
that shutdown() tries to start() a threading.Thread() that never
makes it all the way back to signal start().

Also add a PendingReleaseNote and extra doc comments to clarify.

Fixes: #8797
Signed-off-by: Dan Mick <dan.mick@redhat.com>
(cherry picked from commit 5ba9b8f21f8010c59dd84a0ef2acfec99e4b048f)

Conflicts:
PendingReleaseNotes

10 years agoMerge pull request #3010 from dachary/wip-10018-primary-erasure-code-hinfo-giant
Samuel Just [Mon, 8 Dec 2014 21:19:20 +0000 (13:19 -0800)]
Merge pull request #3010 from dachary/wip-10018-primary-erasure-code-hinfo-giant

osd: deep scrub must not abort if hinfo is missing (giant)

Reviewed-by: Samuel Just <sjust@redhat.com>
10 years agoMerge pull request #3110 from ceph/giant-10263
Gregory Farnum [Mon, 8 Dec 2014 20:36:48 +0000 (12:36 -0800)]
Merge pull request #3110 from ceph/giant-10263

mds: store backtrace for straydir

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
10 years agomds: store backtrace for straydir 3110/head
Yan, Zheng [Fri, 7 Nov 2014 03:38:37 +0000 (11:38 +0800)]
mds: store backtrace for straydir

Backport: giant, firefly, emperor, dumpling
Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 0d89db5d3e5ae5d552d4058a88a4e186748ab1d2)

10 years agoMerge pull request #3088 from dachary/wip-10063-hobject-shard-giant
Sage Weil [Sat, 6 Dec 2014 19:06:20 +0000 (11:06 -0800)]
Merge pull request #3088 from dachary/wip-10063-hobject-shard-giant

common: do not omit shard when ghobject NO_GEN is set (giant)

10 years agoMerge pull request #3095 from dachary/wip-9785-dmcrypt-keys-permissions-giant
Sage Weil [Sat, 6 Dec 2014 01:33:12 +0000 (17:33 -0800)]
Merge pull request #3095 from dachary/wip-9785-dmcrypt-keys-permissions-giant

ceph-disk: dmcrypt file permissions (giant)

10 years agoMerge pull request #3006 from dachary/wip-9420-erasure-code-non-regression-giant
Sage Weil [Sat, 6 Dec 2014 01:30:31 +0000 (17:30 -0800)]
Merge pull request #3006 from dachary/wip-9420-erasure-code-non-regression-giant

 erasure-code: store and compare encoded contents (giant)

10 years agoceph-disk: dmcrypt file permissions 3095/head
Loic Dachary [Thu, 4 Dec 2014 21:21:32 +0000 (22:21 +0100)]
ceph-disk: dmcrypt file permissions

The directory in which key files are stored for dmcrypt must be 700 and
the file 600.

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

Signed-off-by: Loic Dachary <ldachary@redhat.com>
(cherry picked from commit 58682d1776ab1fd4daddd887d921ca9cc312bf50)

10 years agoMerge pull request #3085 from dachary/wip-10125-radosgw-init-giant
Sage Weil [Fri, 5 Dec 2014 17:03:54 +0000 (09:03 -0800)]
Merge pull request #3085 from dachary/wip-10125-radosgw-init-giant

rgw: run radosgw as apache with systemd (giant)