Project

General

Profile

Bug #61818

Updated by Xiubo Li 11 months ago

https://pulpito.ceph.com/xiubli-2023-06-26_02:38:43-fs:functional-wip-lxb-xlock-20230619-0716-distro-default-smithi/7316098/ 

 When This deadlock was because the unlink request will trigger an inode to do the linkmerge. And when the unlink request was tried first time it will set the dentry's state to *STATE_UNLINKING* and then wait locks and then goto sleep. 

 Then a previous request finishes *STATE_UNLINKING*, but will go to sleep just after journal log was flushed and sending out the safe reply it will try to trigger triggering a linkmerge by setting linkmerge, while the INTEGRATING state, and the linkmerge reqeust, request, which is will be internal rename request, detectes detected that the dentry has been set to *STATE_UNLINKING*, so the linkmerge will wait the unlink to finish.  

 And then the unlink request is retried for the second time and but detects that the dentry is under linkmerging, so it will wait the linkmerge to finish. 

 Then caused the deadlock.

Back