client: wait rename to finish#40787
Conversation
Not yet and I will add it. |
When doing the rename and in some cases, such as if the |
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
|
Rebased it by resolving the conflict in commom/options.cc |
| ldout(cct, 1) << __func__ << " dir " << *dir | ||
| << " rename is on the way, will wait for dn '" | ||
| << dname << "'" << dendl; | ||
| wait_on_list(waiting_for_rename); |
There was a problem hiding this comment.
What protects this condition and wait? It looks like the client_lock. Will that still be the case after your work to break up the client_lock? I assume we'll want to avoid taking that lock in lookup if we can help it...
There was a problem hiding this comment.
No, currently I am using the client_lock for this and queue the waiters in a global list in the Client instead of each Dentry.
And after the inode lock feature is finished or in that patch set I will switch this to inode lock instead.
|
jenkins test api |
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
Sorry @vshankar , I missed this comment. Currently I couldn't login the sepia node and couldn't checked the logs in detail, but from the teuthology.logs they looks like a similar issue with this. I will check it more after I can login to the node. |
|
jenkins test make check |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
In rare case during the rename if another thread tries to lookup the dst dentry, it may get an inconsistent result that both src dentry and dst dentry will link to the same inode at the same time. Will wait the rename to finish and try it again. Fixes: https://tracker.ceph.com/issues/49912 Signed-off-by: Xiubo Li <xiubli@redhat.com>
|
Updated the PR to fix one bug, which is when the 11fb16d#diff-7a3052fe46aebfed0382c9d0bb9880ea1328add824e0b10c5d551ddfee282cd1R14464-R14469 |
rishabh-d-dave
left a comment
There was a problem hiding this comment.
Leaving this comment just for record. This PR failed integration testing but Xiubo has fixed at least of one of the failures. I'll wait for rest of the issue(s) to be fixed before re-testing this PR.
|
@lxbsz Please let me know when this PR is ready. As per our chat one failure needs to be fixed. |
Sure, I have gone through most failures, only the pjd ones are related to this PR, all the others are known issues. I will ping you after I finish that. Thanks. |
PR author has fixed the issue that was reported for this PR.
|
jenkins test docs |
|
This PR is ready for merge, I'll merge it as soon as this CI job passes. |
In rare case during the rename if another thread tries to lookup the
dst dentry, it may get an inconsistent result that both src dentry
and dst dentry will link to the same inode at the same time.
Will wait the rename to finish and try it again.
Fixes: https://tracker.ceph.com/issues/49912
Signed-off-by: Xiubo Li xiubli@redhat.com
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume tox