The create_lv signature changed to require full size description and
tags need to be an actual dictionary (vs. keyword args)
Signed-off-by: Alfredo Deza <adeza@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>
During async log compaction we rely on _flush-and_sync_log to update the
log_writer to jump_to. However, if racing threads are also trying to flush
the log and manage to flush our new log events for us, then our flush will
turn into a no-op, and we won't update jump_to correctly at all. This
results in a corrupted log size a bit later one.
Fix by ensuring that there are no in-progress flushes before we add our
log entries. Also, add asserts to _flush_and_sync_log to make sure we
never bail out early if jump_to is set (which would indicate this or
another similar bug is still present).
Fixes: http://tracker.ceph.com/issues/21878
Signed-off-by: Sage Weil <sage@redhat.com>
This broke the C++ ABI by changing the list structure size. Also, it's
not necessary as we can infer the mempool by looking at the other list
contents. We don't (currently) have a need to map an empty list to a
particular mempool and have that state stick.
Fixes: http://tracker.ceph.com/issues/21573
Signed-off-by: Sage Weil <sage@redhat.com>
These requests impacts whole subtree tree, replaying them when
mds recovers may break order of requests in multimds cluster.
Signed-off-by: "Yan, Zheng" <zyan@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 is more convenient, and also faster than initializing it in
buffer_anon and the immediately moving it elsewhere.
Drop the optionality of the alignment argument.
No users yet.
Signed-off-by: Sage Weil <sage@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>
Without cython_rbd, there are import errors
in the mgr log and the ceph-mgr dashboard cannot be
viewed by building just the vstart target.
Signed-off-by: Ali Maredia <amaredia@redhat.com>
This makes it easier for consumers to detect a path, or a device that
might be mounted or might have more than one mount, including tmpfs and
devtmpfs support, which was just not possible before.
Signed-off-by: Alfredo Deza <adeza@redhat.com>
Fixes the coverity issues:
** 1402628 Uninitialized scalar field
CID 1402628 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
2. uninit_member: Non-static class member epoch is not initialized
in this constructor nor in any functions that it calls.
** 1409841 Uninitialized scalar field
CID 1409841 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
2. uninit_member: Non-static class member len is not initialized
in this constructor nor in any functions that it calls.
** 1416594 Uninitialized scalar field
CID 1416594 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
2. uninit_member: Non-static class member field fh.fh_hk is not
initialized in this constructor nor in any functions that it calls.
Signed-off-by: Amit Kumar <amitkuma@redhat.com>
some times, we only want scrub at out permitted time, avoid
scrub mainly deep scrub affecting business io. this patch
make no scrub deadline when osd_scrub_max_interval == 0, then
we can make sure scrub can only do in expect time.
Signed-off-by: kungf <yang.wang@easystack.cn>