If we are in recovery_wait, we might not recover that object as part of
recover_primary for some time. Worse, if we are waiting on a backfill
which is blocked waiting on a copy_from on the missing object in
question, it can become a dead lock.
Fixes: 11244
Backport: firefly
Signed-off-by: Samuel Just <sjust@redhat.com>
This way, even empty objects have the hinfo key written. That way,
touch and touch->append->truncate end up with the same state.
Fixes: 11265
Signed-off-by: Samuel Just <sjust@redhat.com>
Add some performance critial configurations
Also group and polish the description of each configuration
to make it more clear, changed the default from 0 to actual
value.
Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
This will help prevent drift in the future. It also makes it clear
that the flags are supposed to have the same values.
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Just verify that the read gets the right data, to demonstrate that
passing a flag doesn't cause problems.
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
We don't want to spit out the warning twice, and we don't have cct
anyway.
Also test_init is annoying; we should try to kill it.
Signed-off-by: Sage Weil <sage@redhat.com>
This reverts commit 4bd2bd6bb8.
These constants are the only way these flags are exposed through the C
interface. C users can't include librados.hpp. Ideally we would have
only one version of these (just the C ones), but the C++ ones came
first and need to stay for backwards compatibility.
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
osd: coalesce into single omap_setkeys for normal writes
Tested-by: Andreas Bluemle <andreas.bluemle@itxperts.de>
Reviewed-by: David Zafman <dzafman@redhat.com>
The user mtime and local_mtime are normally set in finish_ctx based on the
value of ctx->mtime; clear that to avoid this update.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
[Sage: simplified]
Signed-off-by: Sage Weil <sage@redhat.com>
When MDS is no longer laggy, it should process deferred messages
first, then process newly received messages.
Fix: #11258
Signed-off-by: Yan, Zheng <zyan@redhat.com>
ISA-L 2.13 brings better performance on Avoton (20%). There's no impact on Xeon
platform. The details are in the release notes.
There's a new API ec_encode_data_update() for incremental encoding
and decoding. The other highlevel API keeps the same as in 2.10
Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
Nightly ran and encountered a situation in which fstat following
ftruncate reported a size not equal to the truncated size.
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
The CLOG_CHANNEL_DEFAULT constant was being abused for two purposes:
- the default channel to log messages to
- the name of the config option key in the key/value pair string that is
used for the default option, e.g. "default=true foo=false bar=false"
Fix this by making the config option key CLOG_CONFIG_DEFAULT_KEY and
replacing throughout, and changing CLOG_CHANNEL_DEFAULT to "cluster" (as
it should be and has been historically).
Fixes: #11177
Signed-off-by: Sage Weil <sage@redhat.com>
cls_rbd: fix read past end of bufferlist c_str() in debug log msg
Reviewed-by: Haomai Wang <haomaiwang@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
When we want to get mdsmap, we try to get_version()
and the return value err = 0 means success.
The assert verified r == 0. r would not change in this flow.
It always meet assert and lead mon failure.
I think this verify should be:
assert(err == 0)
It will help to check return value of get_version().
If you have any questions, feel free to let me know.
Thanks!
Signed-off-by: Vicente Cheng <freeze.bilsted@gmail.com>