Xiubo Li [Tue, 11 Oct 2022 04:53:17 +0000 (12:53 +0800)]
test/libcephfs: add test case for revoking caps
When writing to a file and the max_size is approaching the client
will try to trigger to call check_caps() and flush the caps to MDS.
But just in case the MDS is revoking Fsxrw caps, since the client
keeps writing and holding the Fw caps it may only release part of
the caps but the Fw.
Fixes: https://tracker.ceph.com/issues/57244 Signed-off-by: Xiubo Li <xiubli@redhat.com>
Xiubo Li [Tue, 16 May 2023 01:18:15 +0000 (09:18 +0800)]
client: issue a cap release immediately if no cap exists
In case:
mds client
- Releases cap and put Inode
- Increase cap->seq and sends
revokes req to the client
- Receives release req and - Receives & drops the revoke req
skip removing the cap and
then eval the CInode and
issue or revoke caps again.
- Receives & drops the caps update
or revoke req
- Health warning for client
isn't responding to
mclientcaps(revoke)
All the IMPORT/REVOKE/GRANT cap ops will increase the session seq
in MDS side and then the client need to issue a cap release to
unblock MDS to remove the corresponding cap to unblock possible
waiters.
Fixes: https://tracker.ceph.com/issues/57244 Fixes: https://tracker.ceph.com/issues/61148 Signed-off-by: Xiubo Li <xiubli@redhat.com>
Xiubo Li [Thu, 2 Mar 2023 14:01:08 +0000 (22:01 +0800)]
mds: add the revoking caps back to _revokes list
When revoking caps from clients and if the clients could release
some of the caps references and the clients still could send cap
update request back to MDS, while the confirm_receipt() will clear
the _revokes list anyway.
But this cap will still be kept in revoking_caps list.
At the same time add one debug log when revocation is not totally
finished.
Fixes: https://tracker.ceph.com/issues/57244 Signed-off-by: Xiubo Li <xiubli@redhat.com>
Patrick Donnelly [Mon, 22 May 2023 19:42:28 +0000 (15:42 -0400)]
Merge PR #49553 into main
* refs/pull/49553/head:
mds: wait reintegrate to finish when unlinking
message: make MClientReply inherit MMDSOp
mds: notify the waiters in replica MDSs
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Zac Dover [Thu, 18 May 2023 21:07:02 +0000 (07:07 +1000)]
doc/radosgw: explain multisite dynamic sharding
Add a note to doc/radosgw/dynamicresharding.rst and a note to
doc/radosgw/multisite.rst that explains that dynamic resharding is not
supported in releases prior to Reef.
This commit is made in response to a request from Mathias Chapelain.
Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com> Signed-off-by: Zac Dover <zac.dover@proton.me>
Marcus Watts [Thu, 26 Aug 2021 09:08:00 +0000 (05:08 -0400)]
rgw: remove unused routine in rgw_admin
Routine "dump_bi_entry" contains logic to decode rgw_bucket_dir_entry
which can contain etags to be fixed. However, it turns out this
routine is never called, so let's just get rid of it. (The replacement
code lives in cls land.)
Fixes: https://tracker.ceph.com/issues/61260 Signed-off-by: Marcus Watts <mwatts@redhat.com>
John Mulligan [Wed, 17 May 2023 20:57:39 +0000 (16:57 -0400)]
python-common: remove redundant call to mypy in tox.ini
In the previous change to this tox.ini file, I created a dedicated env
for running mypy but forgot to remove the previous call to mypy that
was happening after the call to pytest.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
qa/tasks: Allow override of recovery configs for tests
With mClock scheduler enabled, a small subset of config options related
to recovery limits are not allowed to be modified unless
osd_mclock_override_recovery_settings option is enabled. This override
option is disabled by default. The following options cannot be modified
without enabling the override option:
The above options are removed from the mon kv store which effectively
restores them to the default values.
This was resulting in tests for example,
test_cluster_configuration.ClusterConfigurationTest to fail since it
modifies the recovery options and expects to verify the modified value.
Therefore, for tests, osd_mclock_override_recovery_settings option is
enabled in vstart_runner.py so that current and future tests
are not affected.
Pere Diaz Bou [Wed, 17 May 2023 14:32:43 +0000 (16:32 +0200)]
mgr/dashboard: add warning message on why osd creation disabled
When no options are present when creating OSDs, you can see the form
with lots of things disabled without having a clear explanation. This
PR introduces a warning banner with a description on why it is
happening.
Fixes: https://tracker.ceph.com/issues/61223 Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
Ankush Behl [Thu, 18 May 2023 11:55:56 +0000 (17:25 +0530)]
mgr/dashboard:Change Daemons > Object Gateway section to Gateways
- Change the Daemons to Gateways
- Changing the breadcrums to call it Gateways
- In list page Calling Daemons List as Gateways List
osd/scheduler: Reset ephemeral changes to mClock built-in profile
This is a follow-up to PR: https://github.com/ceph/ceph/pull/48703.
This commit also considers changes made ephemerally using either the
'daemon' or the 'tell' interfaces to override the built-in mClock
QoS parameters. In such a scenario, the ephemeral changes are removed
using the rm_val() method exposed by the config subsytem and logging
this information.
Other changes:
1. Add a standalone test to exercise the fix.
2. Add documentation note on the outcome of the attempt to modify
built-in profile defaults.
mon/MonCap: Allow default osd profile to run "config rm" with restriction
This is a follow-up to PR: https://github.com/ceph/ceph/pull/48703.
Modify the mon caps to allow OSDs to run the "config rm" command with
restriction to remove only the following config keys from the mon store:
- osd_max_backfills
- osd_recovery_max_active(.*)
- osd_recovery_max_active and
- osd_recovery_max_active_(hdd|ssd)
- osd_mclock_scheduler_(.*) -> all the QoS specific config options.
The above is similar to the change in mon caps to run the "config set"
command as implemented in PR: https://github.com/ceph/ceph/pull/42853.
Venky Shankar [Thu, 18 May 2023 07:19:33 +0000 (12:49 +0530)]
Merge PR #49691 into main
* refs/pull/49691/head:
qa: add test for opening a file via a hard link that is not in the same mds as the inode
mds: rdlock_path_xlock_dentry supports returning auth target inode
Xiubo Li [Fri, 23 Dec 2022 04:50:31 +0000 (12:50 +0800)]
mds: wait reintegrate to finish when unlinking
When unlinking a remote dentry while primary dentry has been just
unlinked and was trying to reintegrate, which will finally be a
RENAME client request to current MDS, the stray dentry.
If the RENAME request is sleeping and waiting for some resources
just after authpin the CInode, so the unlinking request will mark
the remote dentry as UNLINKING state and then add itself to the
wait list just waiting for the CInode to be authpined.
Then after the RENAME request is retried later it will add to a
wait list again and waiting for the UNLINKING state to be cleared.
And finally the RENAME and UNLINK requests will be deadlock.
This fix will block the UNLINK request if the reintegrate_stray
is going on for current dentry.
Fixes: https://tracker.ceph.com/issues/58340 Signed-off-by: Xiubo Li <xiubli@redhat.com>
qa/tasks: Change default mClock profile to high_recovery_ops
With the new mClock default profile, tests were failing with "Exiting scrub checking -- not all pgs scrubbed" due to slower scrubs.
Changing the default profile to high_recovery_ops for testing purposes will fix this issue.