[LU-8353] mdt unlink should lock parent before lookup child Created: 30/Jun/16 Updated: 28/Jul/16 Due: 15/Jul/16 Resolved: 13/Jul/16 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.8.0 |
| Fix Version/s: | Lustre 2.9.0 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Lai Siyao | Assignee: | Lai Siyao |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | dne2 | ||
| Issue Links: |
|
||||||||||||
| Epic/Theme: | dne2 | ||||||||||||
| Severity: | 3 | ||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||
| Description |
|
In DNE Commit-on-Sharing implementation, mdt_reint_unlink() changed code to lookup child before lock parent, as is to find whether current operation is distributed, if so it needs to trigger commit of local changes to eliminate dependencies. But this may cause stale child used in later code. We should always follow lock-before-lookup semantic. |
| Comments |
| Comment by Gerrit Updater [ 30/Jun/16 ] |
|
Lai Siyao (lai.siyao@intel.com) uploaded a new patch: http://review.whamcloud.com/21088 |
| Comment by Gerrit Updater [ 11/Jul/16 ] |
|
Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/21088/ |
| Comment by Andreas Dilger [ 13/Jul/16 ] |
|
Should this ticket be closed? Is it related to |
| Comment by Alex Zhuravlev [ 13/Jul/16 ] |
|
I think it's one of the root causes for |
| Comment by Joseph Gmitter (Inactive) [ 13/Jul/16 ] |
|
Patch landed to master for 2.9.0 |