Make those func return value from void to bool. Using the return value
we can know whether really rebuild content in order to optimize .
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
Previously, fsx deleted all test data upon successful completion. Add
an option to leave the data behind for further analysis.
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
1. write osd_uuid to omap dir when doing filestore mkfs
2. check if omap fsid matches osd fsid when doing filestore mount
(if there is no osd_uuid under omap, assume this as match)
Signed-off-by: Chendi.Xue <chendi.xue@intel.com>
In the HDD as OSD, SSD as journal test, we saw a great
throughput improvement if moving omap to a SSD device at
randwrite case.
This patch aim to add a config option 'filestore_omap_backend_path'
for users to configurate omap path before deploy.
Signed-off-by: Chendi Xue <chendi.xue@intel.com>
I found that, sometimes an OSD thread uses 100% CPU after cutting network
between OSD and client. recv(2) in Pipe::do_recv() keeps returning -EAGAIN,
which causes infinite loop. the call trace is:
Pipe::do_recv (...)
Pipe::buffered_recv (...)
Pipe::tcp_read_nonblocking (...)
Pipe::tcp_read (...)
Pipe::tcp_read() first calls Pipe::tcp_read_wait() to check if data is
avaliable. If there are prefetched data, Pipe::tcp_read_wait() return
immediately. Pipe::buffered_recv() is called, which reads data from the
prefetched data. If prefetched data isn't enough, Pipe::buffered_recv()
calls Pipe::do_recv() to read data from socket. But it's possble that
socket has no data at this time, so Pipe::do_recv() keeps retry.
The fix is simple, just not retry when recv(2) return -EAGAIN.
Fixes: #14120
Signed-off-by: Yan, Zheng <zyan@redhat.com>
dump_stuck_pg_stats() method returns either 0 on success or
an negative error code on failure. So it is wrong to reset
"r" to 0.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
1. we automatically perform deep-scrub at osd_deep_scrub_interval,
not mon_scrub_interval(1week vs. 1day).
2. theoretically a pg can be in a combination state of both unscrubbed
and un-deep-scrubbed.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
there is chance that the sync_entry() gets signaled in the
WaitInterval(max_interval) call because of sync_cond.Signal() call after
"stop = true" in umount(), so without this change, sync_entry() will
continue wait until min_interval is reached. this forces umount() to
wait even it has called d_force_sync(), and hence slows down the
progress of umount(). so we need to check for `stop` if we are not
signalled because of `force_sync`.
Fixes: http://tracker.ceph.com/issues/15695
Reported-by: Haomai Wang <haomaiwang@gmail.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
The SELinux userspace utilities stopped providing versions when they
switched to CIL language. We need to use a different technique to
relabel the files.
Fixes: #15725
Signed-off-by: Boris Ranto <branto@redhat.com>
If the option "rgw_swift_account_in_url" is being set to true,
both user and subuser IDs will be present in the X-Storage-Url
header generated by the implementation of Swift API's TempAuth.
This patch rectifies this behavior and makes that only the user
identifier will be placed there.
Fixes: http://tracker.ceph.com/issues/15667
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
As a precaution to using cleanup for mass deletion of other
objects, only allow --prefix which begins with "benchmark_data."
Signed-off-by: David Zafman <dzafman@redhat.com>
Remove duplicate code in generate_object_name()
Need to handle multiple different pids during cleanup
Add same message from clean_up_slow() in clean_up()
Signed-off-by: David Zafman <dzafman@redhat.com>
By default remove all objects named benchmark_data_{hostname} when
there is no benchmark_last_metadata present.
Fixes: http://tracker.ceph.com/issues/15338
Signed-off-by: David Zafman <dzafman@redhat.com>