Date: Sat, 12 Sep 2015 04:05:24 +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-n1satPGB7D@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 #4 from Justin T. Gibbs <gibbs@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-202607-8-n1satPGB7D>