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>
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>
Check client requirements when loading a keyring from the cct. This is
only used to succeed when no keyring is found and cephx isn't enabled.
We probably want to kill this eventually...
Signed-off-by: Sage Weil <sage@inktank.com>
If we are a daemon, require 'auth cluster required'. Otherwise, use the
client requirement.
As always, fall back to 'auth supported' if blank.
Signed-off-by: Sage Weil <sage@inktank.com>
This should only be called by ~ptr or when we are replacing the current
target with something new. It is not suitable for external consumption
Because it doesn't reset length and offset.
Signed-off-by: Sage Weil <sage@inktank.com>
5% of the time a clone op is chosen, create a snapshot, save the
current contents to a file, and continue operating on a clone.
At the end of the test, verify that all parents match their saved
data.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
snap_lock needs to be taken during writeback.
This is still protected by md_lock. The altered snapc doesn't
affect in-flight ops, so it's safe to update it before flushing.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Move into a separate class that requires layering to be enabled,
so the common step of creating and deleting a clone doesn't
need to be repeated in each test.
Move flatten tests into a subclass so they can be run separately
more easily.
Move the checks for the layering feature into a generic decorator
that skips tests if the specified feature is not being used.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
The parent was already opened when the original ImageCtx
was initialized. We just need to lookup the pool and image
name for it.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Put the completion handling logic into new subclases of
librbd::AioRequest, so the caching/non-caching paths can share
logic. These AioRequests replace AioBlockCompletion as representing
the I/O to a single object in an RBD image.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Fixes: #1855
It is no longer possible to create a subuser and new S3 key associated
with that user through the radosgw-admin utility. In reference to Bug 1855
http://tracker.newdream.net/issues/1855.
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
Signed-off-by: caleb miles <caleb.miles@inktank.com>
``git clone --recursive`` does ``init`` & ``update`` for us. Also
avoids incorrect language; there never were submodules called ``init``
and ``update``.
Signed-off-by: Tommi Virtanen <tv@inktank.com>
Using git@github.com would mean SSHing in, and your average open
source consumer probably won't have a Github account.
Using HTTPS offers the best combination of resisting man-in-the-middle
attacks and passing through corporate firewalls.
Signed-off-by: Wido den Hollander <wido@widodh.nl>
Signed-off-by: Tommi Virtanen <tv@inktank.com>
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>
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>
Otherwise, we might send the ack anyway later, after a subsequent
commit is sent resulting in an out-of-order op.
This resulted in a a crash when the client encountered out of
order ops.
Signed-off-by: Samuel Just <sam.just@inktank.com>
scrub_clear_state takes care of clearing the SCRUB and REPAIR
flags. Thus, PG::scrub() needn't clear them again since
any change that would have caused that if block to occur
would have triggered ReplicatedPG::on_change(), which also
clears the scrub reservations.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Currently, we won't queue for snap trim until the next map
update.
Noticed while reviewing another patch, this would result in
snaps not being trimmed until the next map update.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Otherwise, we do not continue snap_trimming once scrub is
complete.
Noticed while revewing another patch. This would result
in snaps not being trimmed again until the next map
update.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Write in terms of the asynchronous functions, so all the logic
is not duplicated. Now there's only a single point where each
operation needs to change for layering.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
This allows callers to create a snapshot and then read from
it immediately. No one uses this other than the tests,
fortunately.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>