Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Aug 2012 07:27:27 GMT
From:      Marcelo Araujo <araujo@FreeBSD.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/170763: [zfs] 3085 zfs diff panics, then panics in a loop on booting 
Message-ID:  <201208190727.q7J7RRSk030873@red.freebsd.org>
Resent-Message-ID: <201208190730.q7J7U9fv087597@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         170763
>Category:       kern
>Synopsis:       [zfs] 3085 zfs diff panics, then panics in a loop on booting
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 19 07:30:08 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Marcelo Araujo
>Release:        10.0-CURRENT
>Organization:
FreeBSD
>Environment:
FreeBSD hostb 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r233530: Tue Apr  3 02:11:40 UTC 2012     araujo@hostb:/usr/obj/usr/src/sys/HOSTB  i386

>Description:
- Just import a small change from Illumos vendor.
Illumos-gate changeset: 2579580ac955

>How-To-Repeat:

>Fix:


Patch attached with submission follows:

Index: dsl_dataset.c
===================================================================
--- dsl_dataset.c	(revision 233530)
+++ dsl_dataset.c	(working copy)
@@ -3896,6 +3896,10 @@
 	VERIFY(error == 0 || error == ENOENT);
 	zapobj = ds->ds_phys->ds_userrefs_obj;
 	VERIFY(0 == zap_remove(mos, zapobj, ra->htag, tx));
+
+	spa_history_log_internal_ds(ds, "release", tx,
+	    "tag = %s refs now = %lld", ra->htag, (longlong_t)refs);
+
 	if (ds->ds_userrefs == 0 && ds->ds_phys->ds_num_children == 1 &&
 	    DS_IS_DEFER_DESTROY(ds)) {
 		struct dsl_ds_destroyarg dsda = {0};
Index: spa_history.c
===================================================================
--- spa_history.c	(revision 233530)
+++ spa_history.c	(working copy)
@@ -436,8 +436,10 @@
 	 * If this is part of creating a pool, not everything is
 	 * initialized yet, so don't bother logging the internal events.
 	 */
-	if (tx->tx_txg == TXG_INITIAL)
+	if (tx->tx_txg == TXG_INITIAL) {
+		fnvlist_free(nvl);
 		return;
+	}
 
 	va_copy(adx2, adx);
 


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208190727.q7J7RRSk030873>