solaris assert: avl_is_empty(&dn -> dn_dbufs) panic

Don Lewis truckman at FreeBSD.org
Fri Aug 21 20:22:32 UTC 2015


On 21 Aug, Xin Li wrote:
> Hi,
> 
> A quick glance at the changes suggests that Justin's changeset may be
> related.  The reasoning is here:
> 
> https://reviews.csiden.org/r/131/
> 
> Related Illumos ticket:
> 
> https://www.illumos.org/issues/5056
> 
> In dnode_evict_dbufs(), remove multiple passes over dn->dn_dbufs.
> This is possible now that objset eviction is asynchronously
> completed in a different context once dbuf eviction completes.
> 
> In the case of objset eviction, any dbufs held by children will
> be evicted via dbuf_rele_and_unlock() once their refcounts go
> to zero.  Even when objset eviction is not active, the ordering
> of the avl tree guarantees that children will be released before
> parents, allowing the parent's refcounts to naturally drop to
> zero before they are inspected in this single loop.

Thanks.  Changing USE_TMPFS in poudriere.conf from "data localbase" to
"all" has me temporarily up and running.  That my not work so well for
my larger package build runs that will now be a lot more RAM intensive.



More information about the freebsd-fs mailing list