osdc/Objecter: skip sparse-read result decode if bufferlist is empty
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
If we are reencoding an incremental, and it embeds a crush map, we need
to reencode that in a compatible way too. This is especially true now
because we have the compat crush weight-sets. Otherwise, a client may
learn the crush map through an incremental but not understand choose_args,
and not see/understand the alternate weight set. It will send requests
to the wrong OSDs where they will just get dropped.
Fixes: http://tracker.ceph.com/issues/21882
Signed-off-by: Sage Weil <sage@redhat.com>
This option was enabled in 87f33376d9 but
causes ObjectStore/StoreTest.Synthetic/1 (filestore) to fail. Revert that
bit for now until we fix fiemap properly.
See http://tracker.ceph.com/issues/21880
Signed-off-by: Sage Weil <sage@redhat.com>
rgw: fix opslog uri as per Amazon s3
Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
Reviewed-by: Jos Collin <jcollin@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
rgw:fix list objects with marker wrong result when bucket is enable versioning
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
The log gathering causes large performance degradation to clients
with high message throughputs. This is hopefully a short-term
workaround until per-message logging can be replaced with an
efficient data recording system for post-incident analysis
use-cases.
Fixes: http://tracker.ceph.com/issues/21860
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
it is used by the "repair" feature to dedup the files to be searched for
MANIFEST-* files. the default implementation is the POSIX one, which
tries to look at the local fs, but we should be looking for the files in
the bluefs. in this very use case, wal and db do not share the same device,
so we can just compare the paths. actually, it should aways return
"false". as the files being compared are always "db" and "db.wal".
Fixes: http://tracker.ceph.com/issues/21842
Signed-off-by: Kefu Chai <kchai@redhat.com>
if add week day constraint, we can set scrub permit time
more flexible. eg. we can set scurb in Monday-Wednesday 0-12 o'clock
according set this parameter:
osd_scrub_begin_week_day = 1
osd_scrub_end_week_day = 3
osd_scrub_begin_hour = 0
osd_scrub_end_hour = 12
Signed-off-by: kungf <yang.wang@easystack.cn>
If the OSD does not execute sub-ops due to errors encountered prior to
the sub-op, the sub-op result remains zeroed with empty out data.
Attempting to decode the empty bufferlist results in large exception
handling CPU overhead.
Fixes: http://tracker.ceph.com/issues/21844
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This buys us fixes for a few memory errors and asserts and also
improves the CMake build script so it doesn't mostly ignore the
CXXFLAGS we pass in.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Even though extending the lifetime of this temporary delays execution
of its destructor, the compiler does not consider the reference to
have a side-effecting constructor.
The compiler is wrong, but we can silence its complaints.
This will cease to be an issue once we adopt C++17, since mandatory
RVO will solve the inability to bind a variable to a returned
move-only object and the need to extend a temporary.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Clang4 does not recognize a constructor with all arguments defaulted
as a default constructor in some circumstances.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>