New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mds: wait for unlink operation to finish #47399
Conversation
32ec0c4
to
aabf691
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well done tracking that down!!
@lxbsz This change seems to be causing fsstress.sh failures here: https://pulpito.ceph.com/vshankar-2022-08-12_09:34:24-fs-wip-vshankar-testing1-20220812-072441-testing-default-smithi/ (check for fsstress.sh failures) Without this changes, there are no such failures: https://pulpito.ceph.com/vshankar-2022-08-18_04:30:42-fs-wip-vshankar-testing1-20220818-082047-testing-default-smithi/ Please take a look. |
We need to check the Fixed it and I will run the |
All the fs:upgrade:featureful_client:upgraded_client |
Will review it today. |
@lxbsz I'm seeing failures which should have been fixed by this change. See: https://pulpito.ceph.com/vshankar-2023-03-07_05:15:12-fs-wip-vshankar-testing-20230307.030510-testing-default-smithi/7195941/
|
Okay, I will check this tomorrow. Thanks. |
We need to drop the locks before queue it into waiter list:
I am running the test. @vshankar Let me run the |
In the else scope the remote_dn must be non-auth. https://tracker.ceph.com/issues/56695 Signed-off-by: Xiubo Li <xiubli@redhat.com>
7e7f7c6
to
9506b4d
Compare
Updated it. We need to wait for the unlink to finish until the There have 3 cases: I am still testing it. |
If one inode has more than one link and after one of its dentries being unlinked it will be moved to stray directory. Before the linkmerge/migrate finises if a link request comes it will fail with -EXDEV. While in non-multiple link case it's also possible that the clients could pass one invalidate ino, which is still under unlinking. Just wait the linkmerge/migrate or purge to finish. https://tracker.ceph.com/issues/56695 Signed-off-by: Xiubo Li <xiubli@redhat.com>
@vshankar The I have also tried to run the same tests by reverting these patches in this PR still have the same issue and took a long time, till now one has died and the others still running. I am not sure whether my qa test commands' issue or not. Could you add this into your next test ? |
Sure. I think your change in #47399 (comment) would fix the pending issue. I'll include this change in my next run. |
Today I checked the qa test failures again carefully. All the |
Run the tests again twice by pulling the latest https://pulpito.ceph.com/xiubli-2023-03-23_04:49:00-fs:workload-wip-20230316-1328-unlink-distro-default-smithi/ |
fs suite run: https://pulpito.ceph.com/?branch=wip-vshankar-testing-20230330.105356 (test run review is in progress - will update once done) |
The pjd failures are fixed - nice work @lxbsz |
jenkins test windows |
jenkins make check arm64 |
1 similar comment
jenkins make check arm64 |
jenkins test make check arm64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* refs/pull/47399/head: mds: wait the linkmerge/migrate to finish after unlink mds: remove false is_auth() check for remote_dn Reviewed-by: Ramana Raja <rraja@redhat.com> Reviewed-by: Venky Shankar <vshankar@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@redhat.com> Reviewed-by: Rishabh Dave <ridave@redhat.com>
If the previous unlink is not finished yet but the corressponding
inode has been projected and it dentry parent has been changed to
stray. The new comming link request will fail with -EXDEV.
Just wait the previous unlink to finish and unlink the dn from
parent directory.
https://tracker.ceph.com/issues/56695
Signed-off-by: Xiubo Li xiubli@redhat.com
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
Checklist
Show available Jenkins commands
jenkins retest this please
jenkins test classic perf
jenkins test crimson perf
jenkins test signed
jenkins test make check
jenkins test make check arm64
jenkins test submodules
jenkins test dashboard
jenkins test dashboard cephadm
jenkins test api
jenkins test docs
jenkins render docs
jenkins test ceph-volume all
jenkins test ceph-volume tox
jenkins test windows