From owner-freebsd-bugs@freebsd.org Tue Sep 22 22:57:38 2015 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D0AAA07289 for ; Tue, 22 Sep 2015 22:57:38 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 24F081EEC for ; Tue, 22 Sep 2015 22:57:38 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id t8MMvcIJ015685 for ; Tue, 22 Sep 2015 22:57:38 GMT (envelope-from bugzilla-noreply@freebsd.org) 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 Date: Tue, 22 Sep 2015 22:57:37 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.0-CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: gibbs@FreeBSD.org X-Bugzilla-Status: Open X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Sep 2015 22:57:38 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202607 --- Comment #16 from Justin T. Gibbs --- 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.