Actions
Bug #5812
closedassertion failed in zrl_tryenter(): zr_owner==NULL
Start date:
2015-04-09
Due date:
% Done:
100%
Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:
Description
> ::status panic message: assertion failed: zrl->zr_owner == NULL, file: ../../common/fs/zfs/zrlock.c, line: 135 But by the time the dump is completed, zr_owner is NULL. The problem could be that zrl_remove() clears the zr_owner after decrementing the zr_refcount. If it went to zero, then zrl_tryenter() could continue and make this assertion before zrl_remove() clears zr_owner. The fix is to clear zr_owner before decrementing zr_refcount. > ::stack vpanic() 0xfffffffffbe0bcb4() zrl_tryenter+0x77(ffffff02f2b4a308) dnode_move+0xf5(ffffff02f3547040, ffffff1414926c40, 328, 0) kmem_move_buffer+0x1e6(ffffff51a4ce3888) taskq_thread+0x318(ffffff02e96c5e48) thread_start+8() > ffffff02f2b4a308::print zrlock_t { zr_mtx = { _opaque = [ 0 ] } zr_refcount = 0xffffffff zr_cv = { _opaque = 0x2 } zr_pad = 0xbadd zr_owner = 0 zr_caller = 0 }
Updated by Electric Monk about 7 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
git commit 8df173054ca442cd8845a7364c3edad9d6822351
commit 8df173054ca442cd8845a7364c3edad9d6822351 Author: Matthew Ahrens <mahrens@delphix.com> Date: 2015-04-26T22:29:43.000Z 5812 assertion failed in zrl_tryenter(): zr_owner==NULL Reviewed by: George Wilson <george@delphix.com> Reviewed by: Alex Reece <alex@delphix.com> Reviewed by: Will Andrews <will@freebsd.org> Approved by: Gordon Ross <gwr@nexenta.com>
Actions