Commit Graph

39262 Commits

Author SHA1 Message Date
Samuel Just
721c87837c ReplicatedPG: if we got ENOENT and an obc, we need to check the locks
Otherwise, we might return ENOENT out of order.

Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-30 11:33:25 -08:00
Samuel Just
a81f3e6e61 ReplicatedPG::get_rw_locks: use excl lock for read & write_ordered
Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-30 11:33:24 -08:00
Samuel Just
a8e041f065 osd_types: add excl obc lock
Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-30 11:33:24 -08:00
Samuel Just
e00daf56ff ReplicatedPG::cancel_pull: drop_recovery_read lock
Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-30 11:33:24 -08:00
Samuel Just
f5134c8b95 ReplicatedPG::wait_for_unreadable_object: use prep_object_replica_pushes instead of recover_missing if not missing
Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-30 11:33:24 -08:00
Samuel Just
a74296fbfe PG::purge_strays: purge peer_missing as well
Backport: giant, firefly
Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-30 11:33:15 -08:00
Samuel Just
f9abffbb24 osd/: don't block writes on degraded objects
Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-30 11:28:02 -08:00
Samuel Just
c632fecb87 osd/: update peer_missing and local missing if we write a degraded object
Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-30 11:27:59 -08:00
Samuel Just
56b8fc8c70 ReplicatedPG: always take recovery_read_lock for recovery
Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-30 11:26:27 -08:00
Yehuda Sadeh
1c25dbafb4 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>
2015-01-30 10:53:51 -08:00
Vu Pham
b1435e6e77 xio: Enforce at least two portals if bind
Enforce at least two portals being set/created if one set
xio_portals_thread = 1 by mistake
Return the correct last use portal and pass in only one portal
to accept

Signed-off-by: Vu Pham <vu@mellanox.com>
2015-01-30 09:21:37 -08:00
Yehuda Sadeh
e6c2c82306 Merge pull request #3476 from ktdreyer/wip-rpm-radosgw-logrotate
ceph.spec.in: move rgw logrotate to rgw subpackage

Reviewed-by: Boris Ranto <branto@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-30 09:11:36 -08:00
Yehuda Sadeh
6cffebd4dd Merge pull request #3437 from diurchenko/patch-2
rgw: fix doc, wrong HTTP header name

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-30 09:09:17 -08:00
Yehuda Sadeh
f33f664003 Merge pull request #3546 from zhouyuan/204_post_container
rgw: Response 204 when post on containers

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-30 08:43:46 -08:00
Yehuda Sadeh
cbf0691b4a rgw: fail s3 POST auth if keystone not configured
Fixes: #10698
This fixes issue introduced in 8b3dfc9472,
where if user does not exist, we try keystone authentication. However,
if keystone is not configured we justt fall through without failing.
This would have failed later on due to bucket permissions, unless bucket
had a public write permissions.

Reported-by: Valery Tschopp <valery.tschopp@switch.ch>
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-30 07:39:24 -08:00
John Wilkins
10ddab8a24 doc: Fixed hyperlink.
Signed-off-by: John Wilkins <jowilkin@redhat.com>
2015-01-30 06:18:25 -08:00
Yuan Zhou
a0a5185b6b rgw: Response 204 when post on containers
Currently POST request on container returns 202 if success. But in Swift
the code is 204. Let's use 204 to keep align with the Swift API.

Fixes #10667
Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
2015-01-30 20:00:54 +08:00
Vu Pham
b7ab624553 xio: Remove whitespace changes
Remove whitespace changes from xio's "spread and accept connections
using different portals" patch

Signed-off-by: Vu Pham <vu@mellanox.com>
2015-01-30 02:37:27 -08:00
Jianpeng Ma
7c80248760 ObjectCacher: Only r >= 0, it need the read data.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
2015-01-30 13:23:27 +08:00
Jianpeng Ma
ef48a70d55 osdc: only external_call can touch object.
In fact if there is retry reading, the touch_bh also touch object.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
2015-01-30 13:23:16 +08:00
Jianpeng Ma
ed209a5ea2 osdc: For read w/ DONTNEED, if read data contain all cached data, move this object into the tail of LRU.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
2015-01-30 13:21:44 +08:00
Jianpeng Ma
3dca5ef508 osdc: Make ObjectCahce can hanle read with DONTNEED.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
2015-01-30 11:49:21 +08:00
Jianpeng Ma
3d38e1f56c osdc: touch hit bh although there are missing or rx bh.
Avoid losing the hit bh when later read, it should touch hit bh like rx bh.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
2015-01-30 11:44:11 +08:00
Jianpeng Ma
3687dcbcd1 osdc: Make ObjectCahce can hanle write with DONTNEED.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
2015-01-30 11:36:50 +08:00
Jianpeng Ma
28e73a7b8d osdc: Make ObjectCache can accept fadvise_flags.
The field flags of OSDRead/OSDWrite don't use anymore. Replace it with
fadvise_flags.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
2015-01-30 11:29:46 +08:00
Jianpeng Ma
fc76c89d1b osdc: add new filed dontneed in BufferHead.
For read/write op with LIBRADOS_OP_FLAG_FADVISE_DONTNEED,
the hit bh set this as true and later move into the tail of LRU in
order to remove in case in short future no ony access.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
2015-01-30 11:29:00 +08:00
Dongmao Zhang
3373249974 Fix ReplicatedPG do_xattr_cmp_u64
1. bufferlist.c_str() will return a string which is longer than its real length.
This could cause an error result from do_xattr_cmp_u64. So use
std::string to receive the xattr
2. s/atoll/strtoull

Signed-off-by: Dongmao Zhang <deanraccoon@gmail.com>
2015-01-30 11:20:50 +08:00
Yehuda Sadeh
7e5e1ea1a5 Merge pull request #3526 from ceph/wip-rgw-versioning-4
Wip rgw versioning 4

Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-29 16:42:32 -08:00
Yehuda Sadeh
4c50f6a7fc rgw: more merge related fixes
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-29 16:24:33 -08:00
Yehuda Sadeh
01cc9d54d0 rgw: fix merge artifact
s/XMLArgs/RGWHTTPArgs

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-29 16:07:41 -08:00
Yehuda Sadeh
f147143115 Merge remote-tracking branch 'origin/master' into wip-rgw-versioning-4
Conflicts:
	src/rgw/rgw_admin.cc
2015-01-29 16:05:14 -08:00
Sage Weil
243860b5e4 Merge pull request #3125 from ceph/wip-10194-master
Wip 10194 master

Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-29 15:06:11 -08:00
Samuel Just
e26023eeb1 PG: set scrubber.start = scrubber.end after scrub_compare_maps
This is how the scrubber behaved prior to
218de829b1

Fixes: 10693
Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-29 14:22:07 -08:00
Samuel Just
4f9e6ed836 PG: remove block_writes from scrubber
block_writes is actually redundant, it is true iff scrubber.start !=
scrubber.end.

Signed-off-by: Samuel Just <sjust@redhat.com>
2015-01-29 14:21:55 -08:00
Sage Weil
2980f3ac52 Merge branch 'prio_hb_pkts' of git://github.com/wenjianhn/ceph
Conflicts:
	src/msg/Messenger.h
2015-01-29 13:28:26 -08:00
Samuel Just
bed22b49b7 doc: improve incomplete state documentation
Signed-off-by: Samuel Just <sam.just@inktank.com>
2015-01-29 13:17:07 -08:00
Sage Weil
7237933f6c Merge pull request #3543 from ceph/wip-hints
librados: rename NOREUSE to NOCACHE

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
2015-01-29 13:06:29 -08:00
Sage Weil
0e0e3e49c4 Merge pull request #3295 from majianpeng/fix2
osd: add per-pool fadvise-dontneed flag

Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-29 13:04:39 -08:00
Sage Weil
b29167c6c0 Merge pull request #3392 from ceph/wip-crush-straw2
crush: new straw2 bucket

Reviewed-by: Joao Eduardo Luis <joao@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-29 13:03:39 -08:00
Sage Weil
e41c052103 Merge pull request #3495 from XinzeChi/wip-size-empty
cleanup: replace some size() or length() with !empty() 

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2015-01-29 13:03:04 -08:00
Sage Weil
89bd6b1324 librados: rename NOREUSE to NOCACHE
As far as I can tell, the posix_fadvise() distinction between WONTNEED and
NOREUSE is subtle: one says I won't access the data, and the other says
I will access it one more time and then not access it.  That is, the
distinction is about time.  This thread seems to confirm this
interpretation:

 https://lkml.org/lkml/2011/6/27/44

Since we are attaching hints to the IO operations themselves, this
distinction doesn't make much sense for us.  (Backends should be careful
about which hint they use; or rather, they should use WONTNEED *after*
doing the IO since NOREUSE is presenting a no-op in Linux.)

However, we want to make a totally different distinction:

 WONTNEED - nobody will access this -> drop it from the cache
 NOCACHE  - *i* won't access this again -> don't let me affect your caching
            decisions or the working set you're maintaining for other
            clients.

The NOCACHE name is made-up and distinct from NOREUSE only so that it is
different from POSIX and doesn't introduce confusion for people familiar
with the POSIX meaning.  Perhaps a more accurate name would be IWONTNEED
but that is only one character apart and too error-prone IMO.

Signed-off-by: Sage Weil <sage@redhat.com>
2015-01-29 13:00:15 -08:00
Petr Machata
85717394c3 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>
2015-01-29 13:24:59 -07:00
Sage Weil
f6239065e0 osd/PGLog: only do slow extra_reqid search of object appears at least once
Signed-off-by: Sage Weil <sage@redhat.com>
2015-01-29 11:29:51 -08:00
Sage Weil
eefdb32cf5 osd: preserved extra_reqids on promote, flush
This fixes idempotency for operations across caching changes (promote,
flush and cache mode changes).

Fixes: #8935
Signed-off-by: Sage Weil <sage@redhat.com>
2015-01-29 11:29:51 -08:00
Sage Weil
4d310a8249 osd: preserve extra_reqids in PGLog
The log scraping is unfortunately O(n) in the size of the log.  We can
also follow objects and then the prior_version pointers, but we don't have
a version->entry index at the moment.

Only index by reqid if reqid_is_index.  Always index extra_reqids.
Notably, the PROMOTE op does not return true for reqid_is_indexed, but this
is where the promotion extra_reqids will appear.

Signed-off-by: Sage Weil <sage@redhat.com>
2015-01-29 11:29:51 -08:00
Sage Weil
2ad229c5a2 osd: allow extra reqids to be stashed in each pg_log_entry_t
Signed-off-by: Sage Weil <sage@redhat.com>
2015-01-29 11:29:51 -08:00
Yehuda Sadeh
ca71376c83 cls_rgw: fix rgw_bucket_olh_log_entry::epoch initialization
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-29 11:24:57 -08:00
Samuel Just
cd2491a10a Merge pull request #3540 from athanatos/wip-sam-cache-object-context-across-op
Wip sam cache object context across op

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-29 10:39:28 -08:00
Sage Weil
880f94895f Merge pull request #3536 from athanatos/wip-10616
Wip 10616

Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-29 10:18:44 -08:00
Yehuda Sadeh
4feb8644d3 rgw: reuse fcgx connection structure
Fixes: #10194

Reuse the fcgx connection structure. It forces FCGX_Accept_r() freeing
up or reusing the connection if possible. This is needed for certain
fastcgi module (mod-proxy-fcgi) that sets the FCGI_KEEP_CONN, which
prevents the connection from being closed when calling FCGX_Finish_r().

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-29 10:09:12 -08:00