diff options
author | ilbsmart <[email protected]> | 2018-10-17 02:11:24 +0800 |
---|---|---|
committer | Matthew Ahrens <[email protected]> | 2018-10-16 11:11:24 -0700 |
commit | 779a6c0bf6df76e0dd92c1ccf81f48512b835bb0 (patch) | |
tree | afd6c82c91daeb96b9d0a9b6d48e757f4d0e5c81 /tests/README.md | |
parent | b2030e5d51ec23fced9f54536d97ac09db4e0552 (diff) |
deadlock between mm_sem and tx assign in zfs_write() and page fault
The bug time sequence:
1. thread #1, `zfs_write` assign a txg "n".
2. In a same process, thread #2, mmap page fault (which means the
`mm_sem` is hold) occurred, `zfs_dirty_inode` open a txg failed,
and wait previous txg "n" completed.
3. thread #1 call `uiomove` to write, however page fault is occurred
in `uiomove`, which means it need `mm_sem`, but `mm_sem` is hold by
thread #2, so it stuck and can't complete, then txg "n" will
not complete.
So thread #1 and thread #2 are deadlocked.
Reviewed-by: Chunwei Chen <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Matthew Ahrens <[email protected]>
Signed-off-by: Grady Wong <[email protected]>
Closes #7939
Diffstat (limited to 'tests/README.md')
0 files changed, 0 insertions, 0 deletions