mds: drop locks and retry when lock set changes#52522
Conversation
5d7949c to
6df48d8
Compare
An optimization was added to avoid an unnecessary gather on the inode filelock when the client can safely get the file size without also getting issued the requested caps. However, if a retry of getattr is necessary, this conditional inclusion of the inode filelock can cause lock-order violations resulting in deadlock. So, if we've already acquired some of the inode's locks then we must drop locks and retry. Fixes: https://tracker.ceph.com/issues/62052 Fixes: c822b3e Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
|
Pulled debugging commits out into: #52547 |
|
jenkins test make check arm64 |
|
jenkins test windows |
|
jenkins test make check |
|
jenkins test make check |
Build did not go well. |
|
jenkins test make check arm64 |
|
The run was messy - lot many failures due to
|
Are you asking me to look at those more closely or ... ? |
I'll have a look maybe tomorrow or next week, so I just updated here with the details so that I don't loose them. Feel free to peek and debug if time permits. |
@batrick - I couldn't get to reviewing this last Friday. Would you be able to look at the failures (which seem a bit high as compared to other fs suite runs and this is the only PR in the branch)? |
|
I will try to have a look tomorrow @vshankar |
Infrastructure noise I think.
https://tracker.ceph.com/issues/62648
https://tracker.ceph.com/issues/62580 I think it's a testing kernel bug. Do you think this is good to merge otherwise? |
* refs/pull/52522/head: mds: drop locks and retry when lock set changes
ACK. Spoke to @lxbsz too regarding this. |
Venky, it's a known issue and I have fixed it but not backport to Pacific yet. |
|
jenkins test make check arm64 |
yeh - ConnectionError: Failed to reconnect to smithi193 |
Sorry, It's just a similar issue, not the exactly the same one, but I don't think it's related to this PR. I will update the PR later for my finding. |
Fixed it in MDS side #53238. |
|
Merging this in the interest of time - will prepare run wiki asap. |
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 pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windows