Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Sep 2015 22:57:37 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 202607] [panic] Poudriere umounting file systems causes 'solaris assert: avl_is_empty(&dn->dn_dbufs)' panic
Message-ID:  <bug-202607-8-QtgNRXWU57@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-202607-8@https.bugs.freebsd.org/bugzilla/>
References:  <bug-202607-8@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202607

--- Comment #16 from Justin T. Gibbs <gibbs@FreeBSD.org> ---
The stack traces indicate that the dataset being destroyed was referenced
earlier, creating a separate copy of its in-core state (dsl_dataset_t). This
other copy is still being evicted at the time that the dataset is being
destroyed on disk, which is why there is still a reference on the dbuf for the
deadlist for the dataset. This harmless except that this dbuf will hang around
longer than necessary.

Immediate eviction in the same way as for bonus buffers could be added to
dbuf_rele_and_unlock(), but it cannot be exact without acquiring locks. Dnodes
cannot transition from free to allocated until after their last hold is
released, so it should be safe to perform a "best effort" check that the dnode
is still allocated without locks held, but I'm not sure it is worth it.

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-202607-8-QtgNRXWU57>