Project

General

Profile

Bug #5812

assertion failed in zrl_tryenter(): zr_owner==NULL

Added by Matthew Ahrens over 4 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Category:
zfs - Zettabyte File System
Start date:
2015-04-09
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

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
}

History

#1

Updated by Electric Monk over 4 years ago

  • % Done changed from 0 to 100
  • Status changed from New to Closed

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>

Also available in: Atom PDF