Rishabh Dave [Tue, 31 May 2022 03:14:51 +0000 (08:44 +0530)]
qa/cephfs: save results dir from xfstests-dev repo
The "results" directory in xfstests-dev repo contains logs that are
created by it during execution of its tests. Copying this directory to
Ceph log directory saves it from being erased during tear down conducted
by teuthology test runner. These logs allow deeper inspection in to the
cause of failure of tests.
Rishabh Dave [Wed, 8 Jun 2022 17:04:51 +0000 (22:34 +0530)]
qa/cephfs: modify user creation code for xfstests-dev
Create user "fsgqa2" and, since xfstests-dev's README uses option "-m"
while creating user "fsgqa", do the same in our codebase.
Creating user "fsgqa2" is optional along with other users according to
xfstests-dev's README. Create all these users is a preventive step since
tests needing user/users maybe skipped during execution.
Rishabh Dave [Wed, 8 Jun 2022 16:58:34 +0000 (22:28 +0530)]
qa/cephfs: minor changes in xfstests_dev.py
In xfstests-dev repo, local.config options "SCRATCH_DEV" and
"SCRATCH_MNT" were enabled in commit 2ba6b871056c10d7ea75b526489baa3586024fbf but TODO comment for the
wasn't deleted. Let's delete that and use format string instead of
format function on regular string.
Rishabh Dave [Sat, 7 May 2022 03:42:52 +0000 (09:12 +0530)]
qa/cephfs: make it easier to use xfstests-dev using vstart_runner
The intention of this re-arrangement is to make it easier for developers
to use an already cloned and built xfstests-dev repo with
vstart_runner.py.
The re-arrangements are -
* move tearDown() closer to setUp() (so that devs can
enable/disable parts of them easily),
* carve out separate methods (so that these codeblocks can be disabled
in a single go) for -
** deleting groups and users,
** deleting xfstests-dev and xfsprogs-dev repo and
** building xfstests-dev repo
* carve out method for deleting xfstests-dev and xfsprogs-dev repos
* add self.xfstests_repo_path comment (for devs to set path to
xfstests-dev repo), and,
* add a note showing how to use already cloned and built xfstests-dev
repo
Venky Shankar [Wed, 22 Feb 2023 09:11:09 +0000 (14:41 +0530)]
Merge PR #45669 into main
* refs/pull/45669/head:
client: switch to use 32 bits ext_num_fwd
client: switch to use 32 bits ext_num_retry
ceph_fs.h: add 32 bits extended num_retry and num_fwd support
ceph_fs.h: switch to use its own encode/decode helpers
Venky Shankar [Wed, 22 Feb 2023 06:11:44 +0000 (11:41 +0530)]
Merge PR #49934 into main
* refs/pull/49934/head:
qa: add test_fscrypt_dummy_encryption test case support
qa: add 'options' parameter support for write_local_config
qa: add ceph.exclude file to exclude individual tests
qa: add require_kernel_mount helper support
qa: rename test_fscrypt to test_fscrypt_encrypt
Zac Dover [Wed, 22 Feb 2023 03:36:40 +0000 (13:36 +1000)]
doc/rgw: clarify multisite.rst top matter
Improve the pragmatics of the top matter of multisite.rst. Organize the
text into sections, where doing so makes the nature of multi-site
configurations clearer.
Commit dc69033763cc116c6ccdf1f97149a74248691042 moves cephfs-shell from
"<CEPH-REPO-ROOT>/src/tools/cephfs/" to
"<CEPH-REPO-ROOT>/src/tools/cephfs/shell" but cephfs-shell's location in
src/vstart.sh and qa/tasks/cephfs/test_cephfs_shell.py is left
un-updated. This produces a broken vstart_environment.sh and broken
export command in test_cephfs_shell.py.
Introduced-by: dc69033763cc116c6ccdf1f97149a74248691042 Fixes: https://tracker.ceph.com/issues/58795 Signed-off-by: Rishabh Dave <ridave@redhat.com>
myoungwon oh [Tue, 14 Feb 2023 09:39:54 +0000 (18:39 +0900)]
crimson/os/seastore: fix traversal behavior in scan_mapped_space to avoid replay-allocation conflicts
1. Traverse the allocations from backref-tree leaf-node entries;
2. Traverse the pending alloc-deltas by sequence;
3. Traverse the allocations from backref-tree internal-node entries;
J. Eric Ivancich [Thu, 16 Feb 2023 15:29:31 +0000 (10:29 -0500)]
rgw/flight: don't access non-existant flight store during GetObj
The front end must be configured via ceph.conf to start up both the
flight_server and the flight_store. RGWGetObj needs to check for the
existence of a flight_store prior to trying to use it.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
Ilya Dryomov [Thu, 16 Feb 2023 11:53:02 +0000 (12:53 +0100)]
qa/workunits/rbd-nbd: work around "rbd feature disable" hang
"rbd feature disable" appears to reliably hang if the corresponding
remote request is proxied to rbd-nbd (because rbd-nbd happens to own
the exclusive lock after a series of blkdiscard calls) [1]. Work
around it here by enabling journaling before the image is mapped
and disabling it after the image is unmapped.
Also, don't assert on the output of "rbd journal inspect --verbose"
having a certain number of entries. This is racy: if the script gets
delayed after the last blkdiscard call for some reason, there may be
fewer entries present in the journal or none at all.
Ilya Dryomov [Thu, 16 Feb 2023 11:51:04 +0000 (12:51 +0100)]
test/librbd: add LengthModifiedDiscardJournalAppendEnabled test
Currently nothing triggers the length_modified case in
ImageDiscardRequest::prune_object_extents() in isolation. It's only
triggered in DiscardGranularityJournalAppendEnabled test together with
the prune_required case and a bad refactoring could easily break the
length_modified logic again.
N Balachandran [Thu, 16 Feb 2023 04:57:02 +0000 (10:27 +0530)]
rbd-mirror: fix syncing_percent calculation logic in get_replay_status()
When a snapshot sync is resumed and the get_replay_status function
is called before handle_copy_image_progress, the syncing_percent
value may be greater than 100 as the m_local_object_count is still
set to zero. This commit sets the syncing_percent to 0 in such cases.
Fixes: https://tracker.ceph.com/issues/58706 Signed-off-by: N Balachandran <nibalach@redhat.com>
Xiubo Li [Tue, 5 Jul 2022 04:59:11 +0000 (12:59 +0800)]
client: switch to use 32 bits ext_num_fwd
The MDS will increase the forward count, and if the forward count
is less than the one saved in request in client side, that means
the MDS is old version and it was overflowed. Then just stop
forwarding.
Fixes: https://tracker.ceph.com/issues/57854 Signed-off-by: Xiubo Li <xiubli@redhat.com>
Xiubo Li [Tue, 5 Jul 2022 04:59:11 +0000 (12:59 +0800)]
client: switch to use 32 bits ext_num_retry
Check the CEPHFS_FEATURE_32BITS_RETRY_FWD feature bit and if not
set, that means it's connecting to an old MDS and will limit the
max retry to 256 times.
Fixes: https://tracker.ceph.com/issues/57854 Signed-off-by: Xiubo Li <xiubli@redhat.com>
Xiubo Li [Tue, 31 Jan 2023 02:01:46 +0000 (10:01 +0800)]
qa: rename test_fscrypt to test_fscrypt_encrypt
The test_fscrypt_encrypt will only run the 'encrypt' related test
cases without 'test_dummy_encryption' option enabled. This will
test the filename and content verification.
After this I will add the whole test cases with 'test_dummy_encryption'
option.
Yixin Jin [Wed, 15 Feb 2023 17:08:19 +0000 (17:08 +0000)]
rgw: Fix segfault due to concurrent socket use at timeout
This commit fixes a potential segfault risk when
rgw timeout handler works on the socket in one
thread while it is concurrently used by another.
The details of the fix are:
1. Instead of calling socket close(), which resets
descriptor_data in boost::asio socket and risks
segfault due to concurrent use of the socket,
the timeout handler now calls cancel() to abort
all pending ops followed by shutdown() to disable
the underlying transport. The eventual closure of
the socket will be done in the socket destructor.
2. Expose the actual boost::asio socket via get_socket()
from Connection so that the timeout handler can call
cancel() and shutdown() on it, although the socket data
member is already accessible. It allows future expansion
that wants to hide the socket even though it renders the
existing close() less useful.
Fixes: https://tracker.ceph.com/issues/58670 Signed-off-by: Yixin Jin <yjin77@yahoo.ca>
Venky Shankar [Wed, 15 Feb 2023 13:28:29 +0000 (18:58 +0530)]
Merge PR #48053 into main
* refs/pull/48053/head:
test/libcephfs: fix rebasing issues
libcephfs: replace errno.h errors with CEPHFS_E*
messages: avoid converting ceph errors on Windows
client: use CEPHFS_E*
test/libcephfs: use CEPHFS_E* errors
libcephfs: switch to CEPHFS_E* errors
test/libcephfs: disable flaky timestamp assertion on Windows
client: use _setattrx when changing timestamps
client: set nsec to 0 when converting stat struct on Windows
test/libcephfs: skip dirent inode check on Windows
client: avoid trimming inodes on Windows
test/libcephfs: address windows issues
test/libcephfs: include compat.h
test/libcephfs: enable the tests on Windows
Reviewed-by: Venky Shankar <vshankar@redhat.com> Reviewed-by: Anthony D Atri <anthony.datri@gmail.com> Reviewed-by: Patrick Donnelly <pdonnell@redhat.com> Reviewed-by: Rishabh Dave <ridave@redhat.com>