kern/170763: [zfs] 3085 zfs diff panics,
then panics in a loop on booting
Marcelo Araujo
araujo at FreeBSD.org
Sun Aug 19 07:30:09 UTC 2012
>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 at 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:
More information about the freebsd-bugs
mailing list