mirror of
https://github.com/ceph/ceph
synced 2024-12-21 02:42:48 +00:00
1287 lines
46 KiB
Plaintext
1287 lines
46 KiB
Plaintext
|
commit a7ad701b9bd479f20429f19e6fea7373ca6bba7c
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Mon Aug 13 14:58:51 2012 -0700
|
||
|
|
||
|
v0.48.1argonaut
|
||
|
|
||
|
commit d4849f2f8a8c213c266658467bc5f22763010bc2
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Wed Aug 1 13:22:38 2012 -0700
|
||
|
|
||
|
rgw: fix usage trim call encoding
|
||
|
|
||
|
Fixes: #2841.
|
||
|
Usage trim operation was encoding the wrong op structure (usage read).
|
||
|
Since the structures somewhat overlapped it somewhat worked, but user
|
||
|
info wasn't encoded.
|
||
|
|
||
|
Backport: argonaut
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 515952d07107d442889754ec3bd6a344fad25d58
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Wed Aug 8 15:21:53 2012 -0700
|
||
|
|
||
|
cls_rgw: fix rgw_cls_usage_log_trim_op encode/decode
|
||
|
|
||
|
It was not encoding user, adding that and reset version
|
||
|
compatibility.
|
||
|
This changes affects command interface, makes use of
|
||
|
radosgw-admin usage trim incompatible. Use of old
|
||
|
radosgw-admin usage trim should be avoided, as it may
|
||
|
remove more data than requested. In any case, upgraded
|
||
|
server code will not handle old client's trim requests.
|
||
|
|
||
|
backport: argonaut
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 2e77130d5c80220be1612b5499d422de620d2d0b
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Tue Jul 31 16:17:22 2012 -0700
|
||
|
|
||
|
rgw: expand date format support
|
||
|
|
||
|
Relaxing the date format parsing function to allow UTC
|
||
|
instead of GMT.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 14fa77d9277b5ef5d0c6683504b368773b39ccc4
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Aug 2 11:13:05 2012 -0700
|
||
|
|
||
|
rgw: complete multipart upload can handle chunked encoding
|
||
|
|
||
|
Fixes: #2878
|
||
|
We now allow complete multipart upload to use chunked encoding
|
||
|
when sending request data. With chunked encoding the HTTP_LENGTH
|
||
|
header is not required.
|
||
|
|
||
|
Backport: argonaut
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit a06f7783fbcc02e775fc36f30e422fe0f9e0ec2d
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Wed Aug 1 11:19:32 2012 -0700
|
||
|
|
||
|
rgw_xml: xml_handle_data() appends data string
|
||
|
|
||
|
Fixes: #2879.
|
||
|
xml_handle_data() appends data to the object instead of just
|
||
|
replacing it. Parsed data can arrive in pieces, specifically
|
||
|
when data is escaped.
|
||
|
|
||
|
Backport: argonaut
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit a8b224b9c4877a559ce420a2e04f19f68c8c5680
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Wed Aug 1 13:09:41 2012 -0700
|
||
|
|
||
|
rgw: ETag is unquoted in multipart upload complete
|
||
|
|
||
|
Fixes #2877.
|
||
|
Removing quotes from ETag before comparing it to what we
|
||
|
have when completing a multipart upload.
|
||
|
|
||
|
Backport: argonaut
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 22259c6efda9a5d55221fd036c757bf123796753
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Wed Aug 8 15:24:57 2012 -0700
|
||
|
|
||
|
MonMap: return error on failure in build_initial
|
||
|
|
||
|
If mon_host fails to parse, return an error instead of success.
|
||
|
This avoids failing later on an assert monmap.size() > 0 in the
|
||
|
monmap in MonClient.
|
||
|
|
||
|
Fixes: #2913
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
|
||
|
commit 49b2c7b5a79b8fb4a3941eca2cb0dbaf22f658b7
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Wed Aug 8 15:10:27 2012 -0700
|
||
|
|
||
|
addr_parsing: report correct error message
|
||
|
|
||
|
getaddrinfo uses its return code to report failures.
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
|
||
|
commit 7084f29544f431b7c6a3286356f2448ae0333eda
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Aug 8 14:01:53 2012 -0700
|
||
|
|
||
|
mkcephfs: use default osd_data, _journal values
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Greg Farnum <greg@inktank.com>
|
||
|
|
||
|
commit 96b1a496cdfda34a5efdb6686becf0d2e7e3a1c0
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Aug 8 14:01:35 2012 -0700
|
||
|
|
||
|
mkcephfs: use new default keyring locations
|
||
|
|
||
|
The ceph-conf command only parses the conf; it does not apply default
|
||
|
config values. This breaks mkcephfs if values are not specified in the
|
||
|
config.
|
||
|
|
||
|
Let ceph-osd create its own key, fix copying, and fix creation/copying for
|
||
|
the mds.
|
||
|
|
||
|
Fixes: #2845
|
||
|
Reported-by: Florian Haas <florian@hastexo.com>
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Greg Farnum <greg@inktank.com>
|
||
|
|
||
|
commit 4bd466d6ed49c7192df4a5bf0d63bda5d7d7dd9a
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 31 14:01:57 2012 -0700
|
||
|
|
||
|
osd: peering: detect when log source osd goes down
|
||
|
|
||
|
The Peering state has a generic check based on the prior set osds that
|
||
|
will restart peering if one of them goes down (or one of the interesting
|
||
|
down ones comes up). The GetLog state, however, can pull the log from
|
||
|
a peer that is not in the prior set if it got a notify from them (e.g., an
|
||
|
osd in an old interval that was down when the prior set was calculated).
|
||
|
If that osd goes down, we don't detect it and will block forward.
|
||
|
|
||
|
Fix by adding a simple check in GetLog for the newest_update_osd going
|
||
|
down.
|
||
|
|
||
|
(BTW GetMissing does not suffer from this problem because
|
||
|
peer_missing_requested is a subset of the prior set, so the Peering check
|
||
|
is sufficient.)
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Samuel Just <sam.just@inktank.com>
|
||
|
|
||
|
commit 87defa88a0c6d6aafaa65437a6e4ddd92418f834
|
||
|
Author: Sylvain Munaut <tnt@246tNt.com>
|
||
|
Date: Tue Jul 31 11:55:56 2012 -0700
|
||
|
|
||
|
rbd: fix off-by-one error in key name
|
||
|
|
||
|
Fixes: #2846
|
||
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
||
|
|
||
|
commit 37d5b46269c8a4227e5df61a88579d94f7b56772
|
||
|
Author: Sylvain Munaut <tnt@246tNt.com>
|
||
|
Date: Tue Jul 31 11:54:29 2012 -0700
|
||
|
|
||
|
secret: return error on empty secret
|
||
|
|
||
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
||
|
|
||
|
commit 7b9d37c662313929b52011ddae47cc8abab99095
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sat Jul 28 10:05:47 2012 -0700
|
||
|
|
||
|
osd: set STRAY on pg load when non-primary
|
||
|
|
||
|
The STRAY bit indicates that we should annouce ourselves to the primary,
|
||
|
but it is only set in start_peering_interval(). We also need to set it
|
||
|
initially, so that a PG that is loaded but whose role does not change
|
||
|
(e.g., the stray replica stays a stray) will notify the primary.
|
||
|
|
||
|
Observed:
|
||
|
- osd starts up
|
||
|
- mapping does not change, STRAY not set
|
||
|
- does not announce to primary
|
||
|
- primary does not re-check must_have_unfound, objects appear unfound
|
||
|
|
||
|
Fix this by initializing STRAY when pg is loaded or created whenever we
|
||
|
are not the primary.
|
||
|
|
||
|
Fixes: #2866
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 96feca450c5505a06868bc012fe998a03371b77f
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Fri Jul 27 16:03:26 2012 -0700
|
||
|
|
||
|
osd: peering: make Incomplete a Peering substate
|
||
|
|
||
|
This allows us to still catch changes in the prior set that would affect
|
||
|
our conclusions (that we are incomplete) and, when they happen, restart
|
||
|
peering.
|
||
|
|
||
|
Consider:
|
||
|
- calc prior set, osd A is down
|
||
|
- query everyone else, no good info
|
||
|
- set down, go to Incomplete (previously WaitActingChange) state.
|
||
|
- osd A comes back up (we do nothing)
|
||
|
- osd A sends notify message with good info (we ignore)
|
||
|
|
||
|
By making this a Peering substate, we catch the Peering AdvMap reaction,
|
||
|
which will notice a prior set down osd is now up and move to Reset.
|
||
|
|
||
|
Fixes: #2860
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit a71e442fe620fa3a22ad9302413d8344a3a1a969
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Fri Jul 27 15:39:40 2012 -0700
|
||
|
|
||
|
osd: peering: move to Incomplete when.. incomplete
|
||
|
|
||
|
PG::choose_acting() may return false and *not* request an acting set change
|
||
|
if it can't find any suitable peers with enough info to recover. In that
|
||
|
case, we should move to Incomplete, not WaitActingChange, just like we do
|
||
|
a bit lower in GetLog() if we have non-contiguous logs. The state name is
|
||
|
more accurate, and this is also needed to fix bug #2860.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 623026d9bc8ea4c845eb3b06d79e0ca9bef50deb
|
||
|
Merge: 87b6e80 9db7809
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Fri Jul 27 14:00:52 2012 -0700
|
||
|
|
||
|
Merge remote-tracking branch 'gh/stable' into stable-next
|
||
|
|
||
|
commit 9db78090451e609e3520ac3e57a5f53da03f9ee2
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Jul 26 16:35:00 2012 -0700
|
||
|
|
||
|
osd: fixing sharing of past_intervals on backfill restart
|
||
|
|
||
|
We need to share past_intervals whenever we instantiate the PG on a peer.
|
||
|
In the PG activation case, this is based on whether our peer_info[] value
|
||
|
for that peer is dne(). However, the backfill code was updating the
|
||
|
peer info (history) in the block preceeding the dne() check, which meant
|
||
|
we never shared past_intervals in this case and the peer would have to
|
||
|
chew through a potentially large number of maps if the PG has not been
|
||
|
clean recently.
|
||
|
|
||
|
Fix by checking dne() prior to the backfill block. We still need to fill
|
||
|
in the message later because it isn't yet instantiated.
|
||
|
|
||
|
Fixes: #2849
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 87b6e8045a3a1ff6439d2684e960ad0dc8988b33
|
||
|
Merge: 81d72e5 7dfdf4f
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Jul 26 15:04:12 2012 -0700
|
||
|
|
||
|
Merge remote-tracking branch 'gh/wip-rbd-bid' into stable-next
|
||
|
|
||
|
commit 81d72e5d7ba4713eb7c290878d901e21c0709028
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Mon Jul 23 10:47:10 2012 -0700
|
||
|
|
||
|
mon: make 'ceph osd rm ...' wipe out all state bits, not just EXISTS
|
||
|
|
||
|
This ensures that when a new osd reclaims that id it behaves as if it were
|
||
|
really new.
|
||
|
|
||
|
Backport: argonaut
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit ad9c37f2c029f6eb372efb711b234014397057e9
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Mon Jul 9 20:54:19 2012 -0700
|
||
|
|
||
|
test_stress_watch: just one librados instance
|
||
|
|
||
|
This was creating a new cluster connection/session per iteration, and
|
||
|
along with it a few service threads and sockets and so forth.
|
||
|
|
||
|
Unfortunately, librados leaks like a sieve, starting with CephContext
|
||
|
and ceph::crypto::init(). See #845 and #2067.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit c60afe1842a48dd75944822c0872fce6a7229f5a
|
||
|
Merge: 8833050 35b1326
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Jul 26 15:03:50 2012 -0700
|
||
|
|
||
|
Merge commit '35b13266923f8095650f45562d66372e618c8824' into stable-next
|
||
|
|
||
|
First batch of msgr fixes.
|
||
|
|
||
|
commit 88330505cc772a5528e9405d515aa2b945b0819e
|
||
|
Author: Samuel Just <sam.just@inktank.com>
|
||
|
Date: Mon Jul 9 15:53:31 2012 -0700
|
||
|
|
||
|
ReplicatedPG: fix replay op ordering
|
||
|
|
||
|
After a client reconnect, the client replays outstanding ops. The
|
||
|
OSD then immediately responds with success if the op has already
|
||
|
committed (version < ReplicatedPG::get_first_in_progress).
|
||
|
Otherwise, we stick it in waiting_for_ondisk to be replied to when
|
||
|
eval_repop concludes that waitfor_disk is empty.
|
||
|
|
||
|
Fixes #2508
|
||
|
|
||
|
Signed-off-by: Samuel Just <sam.just@inktank.com>
|
||
|
|
||
|
Conflicts:
|
||
|
|
||
|
src/osd/ReplicatedPG.cc
|
||
|
|
||
|
commit 682609a9343d0488788b1c6b03bc437b7905e4d6
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jul 18 12:55:35 2012 -0700
|
||
|
|
||
|
objecter: always resend linger registrations
|
||
|
|
||
|
If a linger op (watch) is sent to the OSD and updates the object, and then
|
||
|
the client loses the reply, it will resend the request. The OSD will see
|
||
|
that it is a dup, however, and not set up the in-memory session state for
|
||
|
the watch. This in turn will break the watch (i.e., notifies won't
|
||
|
get delivered).
|
||
|
|
||
|
Instead, always resend linger registration ops, so that we always have a
|
||
|
unique reqid and do the correct session registeration for each session.
|
||
|
|
||
|
* track the tid of the registation op for each LingerOp
|
||
|
* mark registrations ops as should_resend=false; cancel as needed
|
||
|
* when we send a new registration op, cancel the old one to ensure we
|
||
|
ignore the reply. This is needed becuase we resend linger ops on any
|
||
|
pg change, not just a primary change.
|
||
|
* drop the first_send arg to send_linger(), as we can now infer that
|
||
|
from register_tid == 0.
|
||
|
|
||
|
The bug was easily reproduced with ms inject socket failures = 500 and the
|
||
|
test_stress_watch utility.
|
||
|
|
||
|
Fixes: #2796
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
|
||
|
commit 4d7d3e276967d555fed8a689976047f72c96c2db
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Mon Jul 9 13:22:42 2012 -0700
|
||
|
|
||
|
osd: guard class call decoding
|
||
|
|
||
|
Backport: argonaut
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 7fbbe4652ffb2826978aa1f1cacce4456d2ef1fc
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Jul 5 18:08:58 2012 -0700
|
||
|
|
||
|
librados: take lock when signaling notify cond
|
||
|
|
||
|
When we are signaling the cond to indicate that a notify is complete,
|
||
|
take the appropriate lock. This removes the possibility of a race
|
||
|
that loses our signal. (That would be very difficult given that there
|
||
|
are network round trips involved, but this makes the lock/cond usage
|
||
|
"correct.")
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 6ed01df412b4f4745c8f427a94446987c88b6bef
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sun Jul 22 07:46:11 2012 -0700
|
||
|
|
||
|
workqueue: kick -> wake or _wake, depending on locking
|
||
|
|
||
|
Break kick() into wake() and _wake() methods, depending on whether the
|
||
|
lock is already held. (The rename ensures that we audit/fix all
|
||
|
callers.)
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
Conflicts:
|
||
|
|
||
|
src/common/WorkQueue.h
|
||
|
src/osd/OSD.cc
|
||
|
|
||
|
commit d2d40dc3059d91450925534f361f2c03eec9ef88
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jul 4 15:11:21 2012 -0700
|
||
|
|
||
|
client: fix locking for SafeCond users
|
||
|
|
||
|
Need to wait on flock, not client_lock.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit c963a21a8620779d97d6cbb51572551bdbb50d0b
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Jul 26 15:01:05 2012 -0700
|
||
|
|
||
|
filestore: check for EIO in read path
|
||
|
|
||
|
Check for EIO in read methods and helpers. Try to do checks in low-level
|
||
|
methods (e.g., lfn_*()) to avoid duplication in higher-level methods.
|
||
|
|
||
|
The transaction apply function already checks for EIO on writes, and will
|
||
|
generate a nicer error message, so we can largely ignore the write path,
|
||
|
as long as errors get passed up correctly.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 6bd89aeb1bf3b1cbb663107ae6bcda8a84dd8601
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Jul 26 09:07:46 2012 -0700
|
||
|
|
||
|
filestore: add 'filestore fail eio' option, default true
|
||
|
|
||
|
By default we will assert/fail/crash on EIO from the underlying fs. We
|
||
|
already do this in the write path, but not the read path, or in various
|
||
|
internal infrastructure.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit e9b5a289838f17f75efbf9d1640b949e7485d530
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 24 13:53:03 2012 -0700
|
||
|
|
||
|
config: fix 'config set' admin socket command
|
||
|
|
||
|
Fixes: #2832
|
||
|
Backport: argonaut
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 1a6cd9659abcdad0169fe802ed47967467c448b3
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jul 25 16:35:09 2012 -0700
|
||
|
|
||
|
osd: break potentially large transaction into pieces
|
||
|
|
||
|
We do a similar trick elsewhere. Control this via a tunable. Eventually
|
||
|
we'll control the others (in a non-stable branch).
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 15e1622959f5a46f7a98502cdbaebfda2247a35b
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jul 25 14:53:34 2012 -0700
|
||
|
|
||
|
osd: only commit past intervals at end of parallel build
|
||
|
|
||
|
We don't check for gaps in the past intervals, so we should only commit
|
||
|
this when we are completely done. Otherwise a partial run and rsetart will
|
||
|
leave the gap in place, which may confuse the peering code that relies on
|
||
|
this information.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 16302acefd8def98fc4597366d6ba2845e17fcb6
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jul 25 10:57:35 2012 -0700
|
||
|
|
||
|
osd: generate past intervals in parallel on boot
|
||
|
|
||
|
Even though we aggressively share past_intervals with notifies etc, it is
|
||
|
still possible for an osd to get buried behind a pile of old maps and need
|
||
|
to generate these if it has been out of the cluster for a while. This has
|
||
|
happened to us in the past but, sadly, we did not merge the work then.
|
||
|
On the bright side, this implementation is much much much cleaner than the
|
||
|
old one because of the pg_interval_t helper we've since switched to.
|
||
|
|
||
|
On bootup, we look at the intervals each pg needs and calclate the union,
|
||
|
and then iterate over that map range. The inner bit of the loop is
|
||
|
functionally identical to PG::build_past_intervals(), keeping the per-pg
|
||
|
state in the pistate struct.
|
||
|
|
||
|
Backport: argonaut
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
|
||
|
commit fca65ff52a5f7d49bcac83b3b2232963a879e446
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jul 25 10:58:07 2012 -0700
|
||
|
|
||
|
osd: move calculation of past_interval range into helper
|
||
|
|
||
|
PG::generate_past_intervals() first calculates the range over which it
|
||
|
needs to generate past intervals. Do this in a helper function.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
|
||
|
commit 5979351ef3d3d03bced9286f79cbc22524c4a8de
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jul 25 10:58:28 2012 -0700
|
||
|
|
||
|
osd: fix map epoch boot condition
|
||
|
|
||
|
We only want to join the cluster if we can catch up to the latest
|
||
|
osdmap with a small number of maps, in this case a single map message.
|
||
|
|
||
|
Backport: argonaut
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 8c7186d02627f8255273009269d50955172efb52
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 24 20:18:01 2012 -0700
|
||
|
|
||
|
mon: ignore pgtemp messages from down osds
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit b17f54671f350fd4247f895f7666d46860736728
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 24 20:16:04 2012 -0700
|
||
|
|
||
|
mon: ignore osd_alive messages from down osds
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 7dfdf4f8de16155edd434534e161e06ba7c79d7d
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Mon Jul 23 14:05:53 2012 -0700
|
||
|
|
||
|
librbd: replace assign_bid with client id and random number
|
||
|
|
||
|
The assign_bid method has issues with replay because it is a write
|
||
|
that also returns data. This means that the replayed operation would
|
||
|
return success, but no data, and cause a create to fail. Instead, let
|
||
|
the client set the bid based on its global id and a random number.
|
||
|
|
||
|
This only affects the creation of new images, since the bid is put
|
||
|
into an opaque string as part of the object prefix.
|
||
|
|
||
|
Keep the server side assign_bid around in case there are old clients
|
||
|
still using it.
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
|
||
|
commit dc2d67112163bee8b111f75ae3e3ca42884b09b4
|
||
|
Author: Dan Mick <dan.mick@inktank.com>
|
||
|
Date: Mon Jul 9 14:11:23 2012 -0700
|
||
|
|
||
|
librados: add new constructor to form a Rados object from IoCtx
|
||
|
|
||
|
This creates a separate reference to an existing connection, for
|
||
|
use when a client holding IoCtx needs to consult another (say,
|
||
|
for rbd cloning)
|
||
|
|
||
|
Signed-off-by: Dan Mick <dan.mick@inktank.com>
|
||
|
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
|
||
|
commit c99671201de9d9cdf03bbf0f4e28e8afb70c280c
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jul 18 19:49:58 2012 -0700
|
||
|
|
||
|
add CRUSH_TUNABLES feature bit
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 0b579546cfddec35095b2aec753028d8e63f3533
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Wed Jul 18 10:24:58 2012 -0700
|
||
|
|
||
|
ObjectCacher: fix cache_bytes_hit accounting
|
||
|
|
||
|
Misses are not hits!
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
|
||
|
commit 2869039b79027e530c2863ebe990662685e4bbe6
|
||
|
Author: Pascal de Bruijn | Unilogic Networks B.V <pascal@unilogicnetworks.net>
|
||
|
Date: Wed Jul 11 15:23:16 2012 +0200
|
||
|
|
||
|
Robustify ceph-rbdnamer and adapt udev rules
|
||
|
|
||
|
Below is a patch which makes the ceph-rbdnamer script more robust and
|
||
|
fixes a problem with the rbd udev rules.
|
||
|
|
||
|
On our setup we encountered a symlink which was linked to the wrong rbd:
|
||
|
|
||
|
/dev/rbd/mypool/myrbd -> /dev/rbd1
|
||
|
|
||
|
While that link should have gone to /dev/rbd3 (on which a
|
||
|
partition /dev/rbd3p1 was present).
|
||
|
|
||
|
Now the old udev rule passes %n to the ceph-rbdnamer script, the problem
|
||
|
with %n is that %n results in a value of 3 (for rbd3), but in a value of
|
||
|
1 (for rbd3p1), so it seems it can't be depended upon for rbdnaming.
|
||
|
|
||
|
In the patch below the ceph-rbdnamer script is made more robust and it
|
||
|
now it can be called in various ways:
|
||
|
|
||
|
/usr/bin/ceph-rbdnamer /dev/rbd3
|
||
|
/usr/bin/ceph-rbdnamer /dev/rbd3p1
|
||
|
/usr/bin/ceph-rbdnamer rbd3
|
||
|
/usr/bin/ceph-rbdnamer rbd3p1
|
||
|
/usr/bin/ceph-rbdnamer 3
|
||
|
|
||
|
Even with all these different styles of calling the modified script, it
|
||
|
should now return the same rbdname. This change "has" to be combined
|
||
|
with calling it from udev with %k though.
|
||
|
|
||
|
With that fixed, we hit the second problem. We ended up with:
|
||
|
|
||
|
/dev/rbd/mypool/myrbd -> /dev/rbd3p1
|
||
|
|
||
|
So the rbdname was symlinked to the partition on the rbd instead of the
|
||
|
rbd itself. So what probably went wrong is udev discovering the disk and
|
||
|
running ceph-rbdnamer which resolved it to myrbd so the following
|
||
|
symlink was created:
|
||
|
|
||
|
/dev/rbd/mypool/myrbd -> /dev/rbd3
|
||
|
|
||
|
However partitions would be discovered next and ceph-rbdnamer would be
|
||
|
run with rbd3p1 (%k) as parameter, resulting in the name myrbd too, with
|
||
|
the previous correct symlink being overwritten with a faulty one:
|
||
|
|
||
|
/dev/rbd/mypool/myrbd -> /dev/rbd3p1
|
||
|
|
||
|
The solution to the problem is in differentiating between disks and
|
||
|
partitions in udev and handling them slightly differently. So with the
|
||
|
patch below partitions now get their own symlinks in the following style
|
||
|
(which is fairly consistent with other udev rules):
|
||
|
|
||
|
/dev/rbd/mypool/myrbd-part1 -> /dev/rbd3p1
|
||
|
|
||
|
Please let me know any feedback you have on this patch or the approach
|
||
|
used.
|
||
|
|
||
|
Regards,
|
||
|
Pascal de Bruijn
|
||
|
Unilogic B.V.
|
||
|
|
||
|
Signed-off-by: Pascal de Bruijn <pascal@unilogicnetworks.net>
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
|
||
|
commit 426384f6beccabf9e9b9601efcb8147904ec97c2
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Mon Jul 16 16:02:14 2012 -0700
|
||
|
|
||
|
log: apply log_level to stderr/syslog logic
|
||
|
|
||
|
In non-crash situations, we want to make sure the message is both below the
|
||
|
syslog/stderr threshold and also below the normal log threshold. Otherwise
|
||
|
we get anything we gather on those channels, even when the log level is
|
||
|
low.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 8dafcc5c1906095cb7d15d648a7c1d7524df3768
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Mon Jul 16 15:40:53 2012 -0700
|
||
|
|
||
|
log: fix event gather condition
|
||
|
|
||
|
We should gather an event if it is below the log or gather threshold.
|
||
|
|
||
|
Previously we were only gathering if we were going to print it, which makes
|
||
|
the dump no more useful than what was already logged.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit ec5cd6def9817039704b6cc010f2797a700d8500
|
||
|
Author: Samuel Just <sam.just@inktank.com>
|
||
|
Date: Mon Jul 16 13:11:24 2012 -0700
|
||
|
|
||
|
PG::RecoveryState::Stray::react(LogEvt&): reset last_pg_scrub
|
||
|
|
||
|
We need to reset the last_pg_scrub data in the osd since we
|
||
|
are replacing the info.
|
||
|
|
||
|
Probably fixes #2453
|
||
|
|
||
|
In cases like 2453, we hit the following backtrace:
|
||
|
|
||
|
0> 2012-05-19 17:24:09.113684 7fe66be3d700 -1 osd/OSD.h: In function 'void OSD::unreg_last_pg_scrub(pg_t, utime_t)' thread 7fe66be3d700 time 2012-05-19 17:24:09.095719
|
||
|
osd/OSD.h: 840: FAILED assert(last_scrub_pg.count(p))
|
||
|
|
||
|
ceph version 0.46-313-g4277d4d (commit:4277d4d3378dde4264e2b8d211371569219c6e4b)
|
||
|
1: (OSD::unreg_last_pg_scrub(pg_t, utime_t)+0x149) [0x641f49]
|
||
|
2: (PG::proc_primary_info(ObjectStore::Transaction&, pg_info_t const&)+0x5e) [0x63383e]
|
||
|
3: (PG::RecoveryState::ReplicaActive::react(PG::RecoveryState::MInfoRec const&)+0x4a) [0x633eda]
|
||
|
4: (boost::statechart::detail::reaction_result boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::local_react_impl_non_empty::local_react_impl<boost::mpl::list3<boost::statechart::custom_reaction<PG::RecoveryState::MQuery>, boost::statechart::custom_reaction<PG::RecoveryState::MInfoRec>, boost::statechart::custom_reaction<PG::RecoveryState::MLogRec> >, boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0> >(boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>&, boost::statechart::event_base const&, void const*)+0x130) [0x6466a0]
|
||
|
5: (boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::react_impl(boost::statechart::event_base const&, void const*)+0x81) [0x646791]
|
||
|
6: (boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine, PG::RecoveryState::Initial, std::allocator<void>, boost::statechart::null_exception_translator>::send_event(boost::statechart::event_base const&)+0x5b) [0x63dfcb]
|
||
|
7: (boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine, PG::RecoveryState::Initial, std::allocator<void>, boost::statechart::null_exception_translator>::process_event(boost::statechart::event_base const&)+0x11) [0x63e0f1]
|
||
|
8: (PG::RecoveryState::handle_info(int, pg_info_t&, PG::RecoveryCtx*)+0x177) [0x616987]
|
||
|
9: (OSD::handle_pg_info(std::tr1::shared_ptr<OpRequest>)+0x665) [0x5d3d15]
|
||
|
10: (OSD::dispatch_op(std::tr1::shared_ptr<OpRequest>)+0x2a0) [0x5d7370]
|
||
|
11: (OSD::_dispatch(Message*)+0x191) [0x5dd4a1]
|
||
|
12: (OSD::ms_dispatch(Message*)+0x153) [0x5ddda3]
|
||
|
13: (SimpleMessenger::dispatch_entry()+0x863) [0x77fbc3]
|
||
|
14: (SimpleMessenger::DispatchThread::entry()+0xd) [0x746c5d]
|
||
|
15: (()+0x7efc) [0x7fe679b1fefc]
|
||
|
16: (clone()+0x6d) [0x7fe67815089d]
|
||
|
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
|
||
|
|
||
|
Because we don't clear the scrub state before reseting info,
|
||
|
the last_scrub_stamp state in the info.history structure
|
||
|
changes without updating the osd state resulting in the
|
||
|
above assert failure.
|
||
|
|
||
|
Backport: stable
|
||
|
|
||
|
Signed-off-by: Samuel Just <sam.just@inktank.com>
|
||
|
|
||
|
commit 248cfaddd0403c7bae8e1533a3d2e27d1a335b9b
|
||
|
Author: Samuel Just <sam.just@inktank.com>
|
||
|
Date: Mon Jul 9 17:57:03 2012 -0700
|
||
|
|
||
|
ReplicatedPG: don't warn if backfill peer stats don't match
|
||
|
|
||
|
pinfo.stats might be wrong if we did log-based recovery on the
|
||
|
backfilled portion in addition to continuing backfill.
|
||
|
|
||
|
bug #2750
|
||
|
|
||
|
Signed-off-by: Samuel Just <sam.just@inktank.com>
|
||
|
|
||
|
commit bcb1073f9171253adc37b67ee8d302932ba1667b
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sun Jul 15 20:30:34 2012 -0700
|
||
|
|
||
|
mon/MonitorStore: always O_TRUNC when writing states
|
||
|
|
||
|
It is possible for a .new file to already exist, potentially with a
|
||
|
larger size. This would happen if:
|
||
|
|
||
|
- we were proposing a different value
|
||
|
- we crashed (or were stopped) before it got renamed into place
|
||
|
- after restarting, a different value was proposed and accepted.
|
||
|
|
||
|
This isn't so unlikely for the log state machine, where we're
|
||
|
aggregating random messages. O_TRUNC ensure we avoid getting the tail
|
||
|
end of some previous junk.
|
||
|
|
||
|
I observed #2593 and found that a logm state value had a larger size on
|
||
|
one mon (after slurping) than the others, pointing to put_bl_sn_map().
|
||
|
|
||
|
While we are at it, O_TRUNC put_int() too; the same type of bug is
|
||
|
possible there, too.
|
||
|
|
||
|
Fixes: #2593
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 41a570778a51fe9a36a5b67a177d173889e58363
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sat Jul 14 14:31:34 2012 -0700
|
||
|
|
||
|
osd: based misdirected op role calc on acting set
|
||
|
|
||
|
We want to look at the acting set here, nothing else. This was causing us
|
||
|
to erroneously queue ops for later (wasting memory) and to erroneously
|
||
|
print out a 'misdrected op' message in the cluster log (confusion and
|
||
|
incorrect [but ignored] -ENXIO reply).
|
||
|
|
||
|
Fixes: #2022
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit b3d077c61e977e8ebb91288aa2294fb21c197fe7
|
||
|
Author: Josh Durgin <josh.durgin@inktank.com>
|
||
|
Date: Fri Jul 13 09:42:20 2012 -0700
|
||
|
|
||
|
qa: download tests from specified branch
|
||
|
|
||
|
These python tests aren't installed, so they need to be downloaded
|
||
|
|
||
|
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
|
||
|
|
||
|
commit e855cb247b5a9eda6845637e2da5b6358f69c2ed
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Mon Jun 25 09:47:37 2012 -0700
|
||
|
|
||
|
rgw: don't override subuser perm mask if perm not specified
|
||
|
|
||
|
Bug #2650. We were overriding subuser perm mask whenever subuser
|
||
|
was modified, even if perm mask was not passed.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit d6c766ea425d87a2f2405c08dcec66f000a4e1a0
|
||
|
Author: James Page <james.page@ubuntu.com>
|
||
|
Date: Wed Jul 11 11:34:21 2012 -0700
|
||
|
|
||
|
debian: fix ceph-fs-common-dbg depends
|
||
|
|
||
|
Signed-off-by: James Page <james.page@ubuntu.com>
|
||
|
|
||
|
commit 95e8d87bc3fb12580e4058401674b93e19df6e02
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Wed Jul 11 11:52:24 2012 -0700
|
||
|
|
||
|
rados tool: remove -t param option for target pool
|
||
|
|
||
|
Bug #2772. This fixes an issue that was introduced when we
|
||
|
added the 'rados cp' command. The -t param was already used
|
||
|
for rados bench. With this change the only way to specify
|
||
|
a target pool is using --target-pool.
|
||
|
Though this problem is post argonaut, the 'rados cp' command
|
||
|
has been backported, so we need this fix there too.
|
||
|
|
||
|
Backport: argonaut
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 5b10778399d5bee602e57035df7d40092a649c06
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jul 11 09:19:00 2012 -0700
|
||
|
|
||
|
Makefile: don't install crush headers
|
||
|
|
||
|
This is leftover from when we built a libcrush.so. We can re-add when we
|
||
|
start doing that again.
|
||
|
|
||
|
Reported-by: Laszlo Boszormenyi <gcs@debian.hu>
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 35b13266923f8095650f45562d66372e618c8824
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 10 13:18:27 2012 -0700
|
||
|
|
||
|
msgr: take over existing Connection on Pipe replacement
|
||
|
|
||
|
If a new pipe/socket is taking over an existing session, it should also
|
||
|
take over the Connection* associated with the existing session. Because
|
||
|
we cannot clear existing->connection_state, we just take another reference.
|
||
|
|
||
|
Clean up the comments a bit while we're here.
|
||
|
|
||
|
This affects MDS<->client sessions when reconnecting after a socket fault.
|
||
|
It probably also affects intra-cluster (osd/osd, mds/mds, mon/mon)
|
||
|
sessions as well, but I did not confirm that.
|
||
|
|
||
|
Backport: argonaut
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit b387077b1d019ee52b28bc3bc5305bfb53dfd892
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sun Jul 8 20:33:12 2012 -0700
|
||
|
|
||
|
debian: include librados-config in librados-dev
|
||
|
|
||
|
Reported-by: Laszlo Boszormenyi <gcs@debian.hu>
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 03c2dc244af11b711e2514fd5f32b9bfa34183f6
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 3 13:04:28 2012 -0700
|
||
|
|
||
|
lockdep: increase max locks
|
||
|
|
||
|
Hit this limit with the rados api tests.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit b554d112c107efe78ec64f85b5fe588f1e7137ce
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 3 12:07:28 2012 -0700
|
||
|
|
||
|
config: add unlocked version of get_my_sections; use it internally
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 01da287b8fdc07262be252f1a7c115734d3cc328
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 3 08:20:06 2012 -0700
|
||
|
|
||
|
config: fix lock recursion in get_val_from_conf_file()
|
||
|
|
||
|
Introduce a private, already-locked version.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit c73c64a0f722477a5b0db93da2e26e313a5f52ba
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 3 08:15:08 2012 -0700
|
||
|
|
||
|
config: fix recursive lock in parse_config_files()
|
||
|
|
||
|
The _impl() helper is only called from parse_config_files(); don't retake
|
||
|
the lock.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 6646e891ff0bd31c935d1ce0870367b1e086ddfd
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 3 18:51:02 2012 -0700
|
||
|
|
||
|
rgw: initialize fields of RGWObjEnt
|
||
|
|
||
|
This fixes various valgrind warnings triggered by the s3test
|
||
|
test_object_create_unreadable.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit b33553aae63f70ccba8e3d377ad3068c6144c99a
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Fri Jul 6 13:14:53 2012 -0700
|
||
|
|
||
|
rgw: handle response-* params
|
||
|
|
||
|
Handle response-* params that set response header field values.
|
||
|
Fixes #2734, #2735.
|
||
|
Backport: argonaut
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 74f687501a8a02ef248a76f061fbc4d862a9abc4
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jul 4 13:59:04 2012 -0700
|
||
|
|
||
|
osd: add missing formatter close_section() to scrub status
|
||
|
|
||
|
Also add braces to make the open/close matchups easier to see. Broken
|
||
|
by f36617392710f9b3538bfd59d45fd72265993d57.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 020b29961303b12224524ddf78c0c6763a61242e
|
||
|
Author: Mike Ryan <mike.ryan@inktank.com>
|
||
|
Date: Wed Jun 27 14:14:30 2012 -0700
|
||
|
|
||
|
pg: report scrub status
|
||
|
|
||
|
Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
|
||
|
|
||
|
commit db6d83b3ed51c07b361b27d2e5ce3227a51e2c60
|
||
|
Author: Mike Ryan <mike.ryan@inktank.com>
|
||
|
Date: Wed Jun 27 13:30:45 2012 -0700
|
||
|
|
||
|
pg: track who we are waiting for maps from
|
||
|
|
||
|
Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
|
||
|
|
||
|
commit e1d4855fa18b1cda85923ad9debd95768260d4eb
|
||
|
Author: Mike Ryan <mike.ryan@inktank.com>
|
||
|
Date: Tue Jun 26 16:25:27 2012 -0700
|
||
|
|
||
|
pg: reduce scrub write lock window
|
||
|
|
||
|
Wait for all replicas to construct the base scrub map before finalizing
|
||
|
the scrub and locking out writes.
|
||
|
|
||
|
Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
|
||
|
|
||
|
commit 27409aa1612c1512bf393de22b62bbfe79b104c1
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Jul 5 15:52:51 2012 -0700
|
||
|
|
||
|
rgw: don't store bucket info indexed by bucket_id
|
||
|
|
||
|
Issue #2701. This info wasn't really used anywhere and we weren't
|
||
|
removing it. It was also sharing the same pool namespace as the
|
||
|
info indexed by bucket name, which is bad.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 9814374a2b40e15c13eb03ce6b8e642b0f7f93e4
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Jul 5 14:59:22 2012 -0700
|
||
|
|
||
|
test_rados_tool.sh: test copy pool
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit d75100667a539baf47c79d752b787ed5dcb51d7a
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Jul 5 13:42:23 2012 -0700
|
||
|
|
||
|
rados tool: copy object in chunks
|
||
|
|
||
|
Instead of reading the entire object and then writing it,
|
||
|
we read it in chunks.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 16ea64fbdebb7a74e69e80a18d98f35d68b8d9a1
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Fri Jun 29 14:43:00 2012 -0700
|
||
|
|
||
|
rados tool: copy entire pool
|
||
|
|
||
|
A new rados tool command that copies an entire pool
|
||
|
into another existing pool.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 960c2124804520e81086df97905a299c8dd4e08c
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Fri Jun 29 14:09:08 2012 -0700
|
||
|
|
||
|
rados tool: copy object
|
||
|
|
||
|
New rados command: rados cp <src-obj> [dest-obj]
|
||
|
|
||
|
Requires specifying source pool. Target pool and locator can be specified.
|
||
|
The new command preserves object xattrs and omap data.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 23d31d3e2aa7f2b474a7b8e9d40deb245d8be9de
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Fri Jul 6 08:47:44 2012 -0700
|
||
|
|
||
|
ceph.spec.in: add ceph-disk-{activate,prepare}
|
||
|
|
||
|
Reported-by: Jimmy Tang <jtang@tchpc.tcd.ie>
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit ea11c7f9d8fd9795e127cfd7e8a1f28d4f5472e9
|
||
|
Author: Wido den Hollander <wido@widodh.nl>
|
||
|
Date: Thu Jul 5 15:29:54 2012 +0200
|
||
|
|
||
|
Allow URL-safe base64 cephx keys to be decoded.
|
||
|
|
||
|
In these cases + and / are replaced by - and _ to prevent problems when using
|
||
|
the base64 strings in URLs.
|
||
|
|
||
|
Signed-off-by: Wido den Hollander <wido@widodh.nl>
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit f67fe4e368b5f250f0adfb183476f5f294e8a529
|
||
|
Author: Wido den Hollander <wido@widodh.nl>
|
||
|
Date: Wed Jul 4 15:46:04 2012 +0200
|
||
|
|
||
|
librados: Bump the version to 0.48
|
||
|
|
||
|
Signed-off-by: Wido den Hollander <wido@widodh.nl>
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 35b9ec881aecf84b3a49ec0395d7208de36dc67d
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Tue Jun 26 17:28:51 2012 -0700
|
||
|
|
||
|
rgw-admin: use correct modifier with strptime
|
||
|
|
||
|
Bug #2658: used %I (12h) instead of %H (24h)
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit da251fe88503d32b86113ee0618db7c446d34853
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Jun 21 15:40:27 2012 -0700
|
||
|
|
||
|
rgw: send both swift x-storage-token and x-auth-token
|
||
|
|
||
|
older clients need x-storage-token, newer x-auth-token
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 4c19ecb9a34e77e71d523a0a97e17f747bd5767d
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Jun 21 15:17:19 2012 -0700
|
||
|
|
||
|
rgw: radosgw-admin date params now also accept time
|
||
|
|
||
|
The date format now is "YYYY-MM-DD[ hh:mm:ss]". Got rid of
|
||
|
the --time param for the old ops log stuff.
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
Conflicts:
|
||
|
|
||
|
src/test/cli/radosgw-admin/help.t
|
||
|
|
||
|
commit 6958aeb898fc683159483bfbb798f069a9b5330a
|
||
|
Author: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
Date: Thu Jun 21 13:14:47 2012 -0700
|
||
|
|
||
|
rgw-admin: fix usage help
|
||
|
|
||
|
s/show/trim
|
||
|
|
||
|
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
||
|
|
||
|
commit 83c043f803ab2ed74fa9a84ae9237dd7df2a0c57
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 3 14:07:16 2012 -0700
|
||
|
|
||
|
radosgw-admin: fix clit test
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 5674158163e9c1d50985796931240b237676b74d
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 3 11:32:57 2012 -0700
|
||
|
|
||
|
ceph: fix cli help test
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 151bf0eef59acae2d1fcf3f0feb8b6aa963dc2f6
|
||
|
Author: Samuel Just <sam.just@inktank.com>
|
||
|
Date: Tue Jul 3 11:23:16 2012 -0700
|
||
|
|
||
|
ReplicatedPG: remove faulty scrub assert in sub_op_modify_applied
|
||
|
|
||
|
This assert assumed that all ops submitted before MOSDRepScrub was
|
||
|
submitted were processed by the time that MOSDRepScrub was
|
||
|
processed. In fact, MOSDRepScrub's scrub_to may refer to a
|
||
|
last_update yet to be seen by the replica.
|
||
|
|
||
|
Bug #2693
|
||
|
|
||
|
Signed-off-by: Samuel Just <sam.just@inktank.com>
|
||
|
|
||
|
commit 32833e88a1ad793fa4be86101ce9c22b6f677c06
|
||
|
Author: Kyle Bader <kyle.bader@dreamhost.com>
|
||
|
Date: Tue Jul 3 11:20:38 2012 -0700
|
||
|
|
||
|
ceph: better usage
|
||
|
|
||
|
Signed-off-by: Kyle Bader <kyle.bader@dreamhost.com>
|
||
|
|
||
|
commit 67455c21879c9c117f6402259b5e2da84524e169
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 3 09:20:35 2012 -0700
|
||
|
|
||
|
debian: strip new ceph-mds package
|
||
|
|
||
|
Reported-by: Amon Ott <a.ott@m-privacy.de>
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit b53cdb97d15f9276a9b26bec9f29034149f93358
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jul 3 06:46:10 2012 -0700
|
||
|
|
||
|
config: remove bad argparse_flag argument in parse_option()
|
||
|
|
||
|
This is wrong, and thankfully valgrind picks it up.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit f7d4e39740fd2afe82ac40c711bd3fe7a282e816
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sun Jul 1 17:23:28 2012 -0700
|
||
|
|
||
|
msgr: restart_queue when replacing existing pipe and taking over the queue
|
||
|
|
||
|
The queue may have been previously stopped (by discard_queue()), and needs
|
||
|
to be restarted.
|
||
|
|
||
|
Fixes consistent failures from the mon_recovery.py integration tests.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 5dfd2a512d309f7f641bcf7c43277f08cf650b01
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Sun Jul 1 15:37:31 2012 -0700
|
||
|
|
||
|
msgr: choose incoming connection if ours is STANDBY
|
||
|
|
||
|
If the connect_seq matches, but our existing connection is in STANDBY, take
|
||
|
the incoming one. Otherwise, the other end will wait indefinitely for us
|
||
|
to connect but we won't.
|
||
|
|
||
|
Alternatively, we could "win" the race and trigger a connection by sending
|
||
|
a keepalive (or similar), but that is more work; we may as well accept the
|
||
|
incoming connection we have now.
|
||
|
|
||
|
This removes STANDBY from the acceptable WAIT case states. It also keeps
|
||
|
responsibility squarely on the shoulders of the peer with something to
|
||
|
deliver.
|
||
|
|
||
|
Without this patch, a 3-osd vstart cluster with
|
||
|
'ms inject socket failures = 100' and rados bench write -b 4096 would start
|
||
|
generating slow request warnings after a few minutes due to the osds
|
||
|
failing to connect to each other. With the patch, I complete a 10 minute
|
||
|
run without problems.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit b7007a159f6d941fa8313a24af5810ce295b36ca
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Jun 28 17:50:47 2012 -0700
|
||
|
|
||
|
msgr: preserve incoming message queue when replacing pipes
|
||
|
|
||
|
If we replace an existing pipe with a new one, move the incoming queue
|
||
|
of messages that have not yet been dispatched over to the new Pipe so that
|
||
|
they are not lost. This prevents messages from being lost.
|
||
|
|
||
|
Alternatively, we could set in_seq = existing->in_seq - existing->in_qlen,
|
||
|
but that would make the other end resend those messages, which is a waste
|
||
|
of bandwidth.
|
||
|
|
||
|
Very easy to reproduce the original bug with 'ms inject socket failures'.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 1f3a722e150f9f27fe7919e9579b5a88dcd15639
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Jun 28 17:45:24 2012 -0700
|
||
|
|
||
|
msgr: move dispatch_entry into DispatchQueue class
|
||
|
|
||
|
A bit cleaner.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 03445290dad5b1213dd138cacf46e379400201c9
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Thu Jun 28 17:38:34 2012 -0700
|
||
|
|
||
|
msgr: move incoming queue to separate class
|
||
|
|
||
|
This extricates the incoming queue and its funky relationship with
|
||
|
DispatchQueue from Pipe and moves it into IncomingQueue. There is now a
|
||
|
single IncomingQueue attached to each Pipe. DispatchQueue is now no
|
||
|
longer tied to Pipe.
|
||
|
|
||
|
This modularizes the code a bit better (tho that is still a work in
|
||
|
progress) and (more importantly) will make it possible to move the
|
||
|
incoming messages from one pipe to another in accept().
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 0dbc54169512da776c16161ec3b8fa0b3f08e248
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Wed Jun 27 17:06:40 2012 -0700
|
||
|
|
||
|
msgr: make D_CONNECT constant non-zero, fix ms_handle_connect() callback
|
||
|
|
||
|
A while ago we inadvertantly broke ms_handle_connect() callbacks because
|
||
|
of a check for m being non-zero in the dispatch_entry() thread. Adjust the
|
||
|
enums so that they get delivered again.
|
||
|
|
||
|
This fixes hangs when, for example, the ceph tool sends a command, gets a
|
||
|
connection reset, and doesn't get the connect callback to resend after
|
||
|
reconnecting to a new monitor.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 2429556a51e8f60b0d9bdee71ef7b34b367f2f38
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jun 26 17:10:40 2012 -0700
|
||
|
|
||
|
msgr: fix pipe replacement assert
|
||
|
|
||
|
We may replace an existing pipe in the STANDBY state if the previous
|
||
|
attempt failed during accept() (see previous patches).
|
||
|
|
||
|
This might fix #1378.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit 204bc594be1a6046d1b362693d086b49294c2a27
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jun 26 17:07:31 2012 -0700
|
||
|
|
||
|
msgr: do not try to reconnect con with CLOSED pipe
|
||
|
|
||
|
If we have a con with a closed pipe, drop the message. For lossless
|
||
|
sessions, the state will be STANDBY if we should reconnect. For lossy
|
||
|
sessions, we will end up with CLOSED and we *should* drop the message.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|
||
|
|
||
|
commit e6ad6d25a58b8e34a220d090d01e26293c2437b4
|
||
|
Author: Sage Weil <sage@inktank.com>
|
||
|
Date: Tue Jun 26 17:06:41 2012 -0700
|
||
|
|
||
|
msgr: move to STANDBY if we replace during accept and then fail
|
||
|
|
||
|
If we replace an existing pipe during accept() and then fail, move to
|
||
|
STANDBY so that our connection state (connect_seq, etc.) is preserved.
|
||
|
Otherwise, we will throw out that information and falsely trigger a
|
||
|
RESETSESSION on the next connection attempt.
|
||
|
|
||
|
Signed-off-by: Sage Weil <sage@inktank.com>
|