crimson/os/seastore: move AsyncCleaner to EPM
Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Xuehan Xu <xxhdx1985126@gmail.com>
Reviewed-by: Zhang Song <zhangsong325@gmail.com>
when rm_key get end iterator, don't do muatate
otherwise delta buffer will be empty and cause assert(delta.bl.lenght())
Signed-off-by: chunmei-liu <chunmei.liu@intel.com>
The wrap classmethod is intended to turn any exception into something
that can produce a manager response. All exceptions inheriting from
ErrorResponseBase can do that, so instead of losing all that state,
have wrap return those exceptions inheriting from ErrorResponseBase
as-is.
Additionally, only change the sign of errno values that aren't already
negative.
Adds tests for these cases.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Instead of adding the extra_args correctly the code was "adding" the
"--format" option with the wrong name - using whatever the last argument
name in the actual arguments of the decorated function.
Updated tests to verify that the format option is added to the "ceph
args" string properly.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add a ErrorResponseHandler decorator for catching and automatically
handling ErrorResponseBase exceptions like Responder does but it *only*
handles exceptions. Normal return value tuples are passed on to the mgr.
Add a EmptyResponder decorator that catches errors but returns "empty"
strings as a response to the mgr. This matches a number of preexisting
functions that don't return json or any other value on success.
Both these decorators are added in order to match behaviors of Responder
decorator without opting into auto formatted responses wholesale. They
are intended to be used when converting older apis to use object_format
module.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
*: replace functions in intarith.h with the ones provided by standard library
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Matan Breizman <mbreizma@redhat.com>
There are two purposes related to generic device tiering:
* Make AsyncCleaner (need to introduce a generic interface class later)
to hide differences between segment-based tier and RB-based tier
cleaner implementations.
* Make EPM to coordinate cleaning transactions across tiers with general
AsyncCleaners.
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
mds/client: fail the request if the peer MDS doesn't support getvxattr op
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Milind Changire <mchangir@redhat.com>
mds: add more debug logs before crashing the MDS
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Ramana Raja <rraja@redhat.com>
Reviewed-by: Nikhilkumar Shelke <nshelke@redhat.com>
In function RGWRados::Object::Write::_do_write_meta rgw_rados_operate may return -ETIMEDOUT due to network jitter.
But head obj may eventually be written successfully even if return -ETIMEDOUT. Due to r < 0, meta.canceled be set true.
In such scenario, all the tail objects will removed in the destructor of RadosWriter, then data corruptted.
To avoid data corruption, when return -ETIMEDOUT, should clear all objects in RadosWriter.
Signed-off-by: Shasha Lu <lu.shasha@aishu.cn>
these are leftovers from radosgw-agent. we kept them around for the
conversion logic, but that was only necessary to support upgrades to
jewel and kraken
Signed-off-by: Casey Bodley <cbodley@redhat.com>