[Bug 202607] [panic] Poudriere umounting file systems causes 'solaris assert: avl_is_empty(&dn->dn_dbufs)' panic

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Sep 12 04:05:24 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202607

--- Comment #4 from Justin T. Gibbs <gibbs at FreeBSD.org> ---
(In reply to Xin LI from comment #2)
I spent some more time this evening reviewing the code. I believe that removing
the assert is safe. However, it would be good to assert that the only dbufs on
the dnode are either for the bonus buffer or in the evicting state. This should
hold true because the dnode free paths at higher levels (e.g. ZPL and ZVOL)
enforce mutual exclusion between reads/writes and frees. 

Currently, dbuf_rele_and_unlock() doesn't contain any logic to ensure regular
(not bonus buffer) dbufs are immediately evicted for free'd dnodes. So if, due
to a bug or regression, a dbuf for a dnode being freed is held during the call
to dnode_sync_free() , the dbuf and dnode will stick around in memory until
memory pressure evicts the dbuf. From the perspective of dnode_sync_free() and
even memory usage, this is no big deal, but it probably indicates a bug.

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


More information about the freebsd-bugs mailing list