kern/138764: ZFS panic: "panic: dirtying snapshot!"

Tim Bishop tim at bishnet.net
Sat Sep 12 16:30:07 UTC 2009


>Number:         138764
>Category:       kern
>Synopsis:       ZFS panic: "panic: dirtying snapshot!"
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Sep 12 16:30:07 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Tim Bishop
>Release:        8-STABLE (post BETA4)
>Organization:
>Environment:
FreeBSD aberfal.kent.ac.uk 8.0-BETA4 FreeBSD 8.0-BETA4 #23: Fri Sep 11 18:33:19 BST 2009     tdb at aberfal.kent.ac.uk:/usr/obj/usr/src/sys/ABERFAL  i386
>Description:
I'm running with a ZFS root file system using GPT partitioning and gptzfsboot. I then started using ZFS snapshots by using the sysutils/freebsd-snapshot port. This port basically just runs "zfs snapshot" and does some housekeeping.

The first snapshot went fine (when the machine was quiet). The second (when the machine was doing a portupgrade) caused a panic. All I have on the console is:

panic: dirtying snapshot

I traced this down to:

sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c:1104

void
dsl_dataset_dirty(dsl_dataset_t *ds, dmu_tx_t *tx)
{
        dsl_pool_t *dp;

        if (ds == NULL) /* this is the meta-objset */
                return;

        ASSERT(ds->ds_user_ptr != NULL);

        if (ds->ds_phys->ds_next_snap_obj != 0)
                panic("dirtying snapshot!");

        dp = ds->ds_dir->dd_pool;

        if (txg_list_add(&dp->dp_dirty_datasets, ds, tx->tx_txg) == 0) {
                /* up the hold count until we can be written out */
                dmu_buf_add_ref(ds->ds_dbuf, ds);
        }
}

I'm not sure what this means though.

Sadly I have no debugging enabled and no crash dump.
>How-To-Repeat:
Hard to say. Run ZFS root and do snapshots when the machine is busy? I've only seen it once.
>Fix:


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


More information about the freebsd-bugs mailing list