[Bug 186112] [zfs] [panic] ZFS Panic/Solaris Assert/zap.c:479

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Aug 30 22:14:26 UTC 2014


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=186112

Peter Wemm <peter at FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |peter at FreeBSD.org

--- Comment #5 from Peter Wemm <peter at FreeBSD.org> ---
If you look at the whole comment for one of the assertions you disabled:

        /*
         * lhr_pad was previously used for the next leaf in the leaf
         * chain.  There should be no chained leafs (as we have removed
         * support for them).
         */
        ASSERT0(l->l_phys->l_hdr.lh_pad1);

Or looking at the annotation:
168404        pjd       /*
168404        pjd        * lhr_pad was previously used for the next leaf in the
leaf
168404        pjd        * chain.  There should be no chained leafs (as we have
removed
168404        pjd        * support for them).
168404        pjd        */
240415         mm       ASSERT0(l->l_phys->l_hdr.lh_pad1);

One of those is the initial commit:
------------------------------------------------------------------------
r168404 | pjd | 2007-04-05 18:09:06 -0700 (Thu, 05 Apr 2007) | 11 lines

Please welcome ZFS - The last word in file systems.

ZFS file system was ported from OpenSolaris operating system. The code in under
CDDL license.
------------------------------------------------------------------------


The second is:
------------------------------------------------------------------------
r240415 | mm | 2012-09-12 11:05:43 -0700 (Wed, 12 Sep 2012) | 21 lines

Merge recent zfs vendor changes, sync code and adjust userland DEBUG.
------------------------------------------------------------------------

The change is just a syntax one:
-       ASSERT3U(l->l_phys->l_hdr.lh_pad1, ==, 0);
+       ASSERT0(l->l_phys->l_hdr.lh_pad1);

So.. ever since ZFS existed in FreeBSD, that field should be zero, on disk. 
You are tripping those asserts because it isn't the case on your machine.

This suggests to me that you've either got a very old file system that
pre-dates freebsd, or you've got some evil on-disk corruption.

I suspect the latter.  If this was my machine, I'd be contemplating a
backup/restore.  I see from the disk sizes you may have a lot of data, but
that's what I would be doing.

I also see the stack traces come from the zfs de-dupe code.  There are a great
number of people who have a very dim view of that code, even the authors
apologized for it.  If it were my machine, I would be turning off dedup
immediately, if not sooner.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-fs mailing list