zfs: Fatal trap 12: page fault while in kernel mode

Thomas Backman serenity at exscape.org
Wed Jul 29 13:52:45 UTC 2009


On Jul 29, 2009, at 15:46, Andriy Gapon wrote:

> on 29/07/2009 16:24 Thomas Backman said the following:
>> Hmm, you are indeed right, it's not the same panic. The backtrace I  
>> got
>> just now with INVARIANTS is the one you quoted above.
>> I still get the "_sx_xlock (sx=Variable "sx" is not available.)" and
>> "_sx_xlock_hard (sx=0xffffff00090d5018, ..., opts=Variable "opts"  
>> is not
>> available.)" though.
>> Am I missing some option (I've got GENERIC, minus WITNESS plus  
>> DTRACE,
>> now that INVARIANTS is back in place), or does this "just happen"?
>
> Not sure what this question is about. What option, what "this" :-)
>
>> Here's the "full" backtrace (minus the panic(), trap() etc.):
>>
>> #10 0xffffffff8057dfe7 in calltrap ()
>>    at /usr/src/sys/amd64/amd64/exception.S:224
>> #11 0xffffffff80342b99 in _sx_xlock_hard (sx=0xffffff00090d5018,
>>    tid=18446742974952890368, opts=Variable "opts" is not available.
>> ) at /usr/src/sys/kern/kern_sx.c:575
>> #12 0xffffffff8034350e in _sx_xlock (sx=Variable "sx" is not  
>> available.
>> ) at sx.h:155
>> #13 0xffffffff80af7596 in zfs_freebsd_reclaim () from /boot/kernel/ 
>> zfs.ko
>> #14 0xffffffff805c5c2a in VOP_RECLAIM_APV (vop=0xffffff00090d5018,
>>    a=0xffffff00090d5000) at vnode_if.c:1926
>> #15 0xffffffff803c839e in vgonel (vp=0xffffff0009252588) at  
>> vnode_if.h:830
>> #16 0xffffffff803cc958 in vflush (mp=0xffffff0002cd7bc0, rootrefs=0,
>> flags=0,
>>    td=0xffffff002cffe000) at /usr/src/sys/kern/vfs_subr.c:2449
>> #17 0xffffffff80af2038 in zfs_umount () from /boot/kernel/zfs.ko
>> #18 0xffffffff803c55ca in dounmount (mp=0xffffff0002cd7bc0,  
>> flags=47020992,
>>    td=Variable "td" is not available.
>> ) at /usr/src/sys/kern/vfs_mount.c:1289
>> #19 0xffffffff803c5df8 in unmount (td=0xffffff002cffe000,
>>    uap=0xffffff803e98bbf0) at /usr/src/sys/kern/vfs_mount.c:1174
>> #20 0xffffffff805980bf in syscall (frame=0xffffff803e98bc80)
>>    at /usr/src/sys/amd64/amd64/trap.c:984
>> #21 0xffffffff8057e2c1 in Xfast_syscall ()
>>    at /usr/src/sys/amd64/amd64/exception.S:373
>> #22 0x000000080104e9ec in ?? ()
>> Previous frame inner to this frame (corrupt stack?)
>
> Looks like your zfs module is built without debugging symbols?
> Maybe because was it built/rebuilt individually, not as part of  
> kernel build?
>
> It would be useful to get line number in frame 13 and examine sx  
> object in frame
> 11, esp. sx_lock field.
>
> -- 
> Andriy Gapon
The "this" (above) was referring to variable values not being  
available in a vmcore. :)

The zfs module appears to be built with symbols, and the symbols  
appear to be loaded in kgdb:

Reading symbols from /boot/kernel/zfs.ko...Reading symbols from / 
bootdir/boot/kernel/zfs.ko.symbols...done. done.
Loaded symbols for /boot/kernel/zfs.ko
Reading symbols from /boot/kernel/opensolaris.ko...Reading symbols  
from /bootdir/boot/kernel/opensolaris.ko.symbols...done. done.
Loaded symbols for /boot/kernel/opensolaris.ko

I didn't build the module(s) individually, either; in the previous  
cases, it was a clean buildworld/buildkernel (even with rm -rf /usr/ 
obj/* beforehand), and in this case "just" a buildkernel (no manual  
cleaning, but no -DNO_CLEAN either).

Regards,
Thomas


More information about the freebsd-current mailing list