ZFS files server crash: solaris assert: start < end in trim_map.c
Willem Jan Withagen
wjw at digiware.nl
Tue Sep 29 13:30:26 UTC 2015
Hi,
Just found this after a crash:
Architecture: amd64
Architecture Version: 2
Dump Length: 7031291904B (6705 MB)
Blocksize: 512
Dumptime: Tue Sep 29 12:55:01 2015
Hostname: zfs.digiware.nl
Magic: FreeBSD Kernel Dump
Version String: FreeBSD 10.2-STABLE #2 r287746M: Sun Sep 13 12:33:23
CEST 2015
root at zfs.digiware.nl:/home/obj/amd64/usr/srcs/work10/src/sys/ZFS
Panic String: solaris assert: start < end, file:
/usr/srcs/work10/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c,
line: 219
(kgdb) bt
#0 doadump (textdump=1) at pcpu.h:219
#1 0xffffffff804f9d97 in kern_reboot (howto=260) at
/usr/srcs/work10/src/sys/kern/kern_shutdown.c:451
#2 0xffffffff804fa195 in vpanic (fmt=<value optimized out>, ap=<value
optimized out>) at /usr/srcs/work10/src/sys/kern/kern_shutdown.c:758
#3 0xffffffff804fa023 in panic (fmt=0x0) at
/usr/srcs/work10/src/sys/kern/kern_shutdown.c:687
#4 0xffffffff8106a1fd in assfail (a=<value optimized out>, f=<value
optimized out>, l=<value optimized out>)
at
/usr/srcs/work10/src/sys/modules/opensolaris/../../cddl/compat/opensolaris/kern/opensolaris_cmn_err.c:81
#5 0xffffffff80e65161 in trim_map_segment_add (tm=0xfffff8001432ba00,
start=7704576, end=7704576, txg=0)
at
/usr/srcs/work10/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c:219
#6 0xffffffff80e6464f in trim_map_free_locked (tm=<value optimized
out>, start=<value optimized out>, end=<value optimized out>, txg=<value
optimized out>)
at
/usr/srcs/work10/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c:319
#7 0xffffffff80e64588 in trim_map_free (vd=0xfffff8000ae3b800,
offset=7704576, size=<value optimized out>, txg=0)
at
/usr/srcs/work10/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c:337
#8 0xffffffff80db490c in arc_hdr_destroy (hdr=0xfffff800198ac5e8) at
/usr/srcs/work10/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c:1825
#9 0xffffffff80db980a in l2arc_evict (dev=0xfffff8000aa2d480,
distance=<value optimized out>, all=0)
at
/usr/srcs/work10/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c:5004
#10 0xffffffff80dba0da in l2arc_feed_thread (dummy=<value optimized out>)
at
/usr/srcs/work10/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c:5581
#11 0xffffffff804c9855 in fork_exit (callout=0xffffffff80db9b80
<l2arc_feed_thread>, arg=0x0, frame=0xfffffe023bbc4bc0)
at /usr/srcs/work10/src/sys/kern/kern_fork.c:1018
#12 0xffffffff807773ee in fork_trampoline () at
/usr/srcs/work10/src/sys/amd64/amd64/exception.S:611
#13 0x0000000000000000 in ?? ()
And the values there are:
#5 0xffffffff80e65161 in trim_map_segment_add (tm=0xfffff8001432ba00,
start=7704576, end=7704576, txg=0)
at
/usr/srcs/work10/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c:219
219 VERIFY(start < end);
(kgdb) p start
$1 = 7704576
(kgdb) p end
$2 = 7704576
Which suggests to me that the comparison might need to be '<=', but that
will probably not be this simple...
--WjW
More information about the freebsd-fs
mailing list