Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Sep 2013 11:25:10 -0700
From:      olivier <olivier777a7@gmail.com>
To:        Volodymyr Kostyrko <c.kworr@gmail.com>
Cc:        "freebsd-stable@freebsd.org" <stable@freebsd.org>, zfs-devel@freebsd.org
Subject:   Re: 9.2PRERELEASE ZFS panic in lzjb_compress
Message-ID:  <CALC5%2B1MmfeyuMBxQBrzc15oQKm%2BEgi%2BWAKwTQ3epYG1heEfiVw@mail.gmail.com>
In-Reply-To: <51E944B0.5080409@gmail.com>
References:  <CALC5%2B1OCavSqJDMUysEuF=zCdEg646pH-i=p_1bK%2ByiVbY=xWQ@mail.gmail.com> <51E944B0.5080409@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Got another, very similar panic again on recent 9-STABLE (r255602); I
assume the latest 9.2 release candidate is affected too. Anybody have any
idea of what could be causing this, and of a workaround other than turning
compression off?
Unlike the last panic I reported, this one did not occur during a zfs
send/receive operation. There were just a number of processes potentially
writing to disk at the same time.
All hardware is healthy as far as I can tell (memory is ECC and no errors
in logs; zpool status and smartctl show no problems).

Fatal trap 12: page fault while in kernel mode


cpuid = 4; apic id = 24
cpuid = 51; apic id = 83
fault virtual address = 0xffffff8700a9cc65
fault virtual address = 0xffffff8700ab0ea9
fault code = supervisor read data, page not present

instruction pointer = 0x20:0xffffffff8195ff47
fault code = supervisor read data, page not present
stack pointer        = 0x28:0xffffffcf951390a0
Fatal trap 12: page fault while in kernel mode
frame pointer        = 0x28:0xffffffcf951398f0
Fatal trap 12: page fault while in kernel mode
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, long 1, def32 0, gran 1
instruction pointer = 0x20:0xffffffff8195ffa4
stack pointer        = 0x28:0xffffffcf951250a0
processor eflags = frame pointer        = 0x28:0xffffffcf951258f0
interrupt enabled, code segment = base 0x0, limit 0xfffff, type 0x1b

resume, IOPL = 0
cpuid = 28; apic id = 4c
Fatal trap 12: page fault while in kernel mode
= DPL 0, pres 1, long 1, def32 0, gran 1
current process = 0 (zio_write_issue_hig)
processor eflags = fault virtual address = 0xffffff8700aa22ac
interrupt enabled, fault code = supervisor read data, page not present
resume, IOPL = 0
trap number = 12
instruction pointer = 0x20:0xffffffff8195ffa4
current process = 0 (zio_write_issue_hig)
panic: page fault
cpuid = 4
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a/frame
0xffffffcf95138b30
kdb_backtrace() at kdb_backtrace+0x37/frame 0xffffffcf95138bf0
panic() at panic+0x1ce/frame 0xffffffcf95138cf0
trap_fatal() at trap_fatal+0x290/frame 0xffffffcf95138d50
trap_pfault() at trap_pfault+0x211/frame 0xffffffcf95138de0
trap() at trap+0x344/frame 0xffffffcf95138fe0
calltrap() at calltrap+0x8/frame 0xffffffcf95138fe0
--- trap 0xc, rip = 0xffffffff8195ff47, rsp = 0xffffffcf951390a0, rbp =
0xffffffcf951398f0 ---
lzjb_compress() at lzjb_compress+0xa7/frame 0xffffffcf951398f0
zio_compress_data() at zio_compress_data+0x92/frame 0xffffffcf95139920
zio_write_bp_init() at zio_write_bp_init+0x24b/frame 0xffffffcf95139970
zio_execute() at zio_execute+0xc3/frame 0xffffffcf951399b0
taskqueue_run_locked() at taskqueue_run_locked+0x74/frame 0xffffffcf95139a00
taskqueue_thread_loop() at taskqueue_thread_loop+0x46/frame
0xffffffcf95139a20
fork_exit() at fork_exit+0x11f/frame 0xffffffcf95139a70
fork_trampoline() at fork_trampoline+0xe/frame 0xffffffcf95139a70
--- trap 0, rip = 0, rsp = 0xffffffcf95139b30, rbp = 0 ---


0x51f47 is in lzjb_compress
(/usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/lzjb.c:74).
69 }
70 if (src > (uchar_t *)s_start + s_len - MATCH_MAX) {
71 *dst++ = *src++;
72 continue;
73 }
74 hash = (src[0] << 16) + (src[1] << 8) + src[2];
75 hash += hash >> 9;
76 hash += hash >> 5;
77 hp = &lempel[hash & (LEMPEL_SIZE - 1)];
78 offset = (intptr_t)(src - *hp) & OFFSET_MASK;

dmesg output is at http://pastebin.com/U34fwJ5f
kernel config is at http://pastebin.com/c9HKfcsz
I can provide more information if useful.
Thanks


On Fri, Jul 19, 2013 at 6:52 AM, Volodymyr Kostyrko <c.kworr@gmail.com>wrote:

> 19.07.2013 07:04, olivier wrote:
>
>> Hi,
>> Running 9.2-PRERELEASE #19 r253313 I got the following panic
>>
>> Fatal trap 12: page fault while in kernel mode
>> cpuid = 22; apic id = 46
>> fault virtual address   = 0xffffff827ebca30c
>> fault code              = supervisor read data, page not present
>> instruction pointer     = 0x20:0xffffffff81983055
>> stack pointer           = 0x28:0xffffffcf75bd60a0
>> frame pointer           = 0x28:0xffffffcf75bd68f0
>> code segment            = base 0x0, limit 0xfffff, type 0x1b
>>                          = DPL 0, pres 1, long 1, def32 0, gran 1
>> processor eflags        = interrupt enabled, resume, IOPL = 0
>> current process         = 0 (zio_write_issue_hig)
>> trap number             = 12
>> panic: page fault
>> cpuid = 22
>> KDB: stack backtrace:
>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a/**frame
>> 0xffffffcf75bd5b30
>> kdb_backtrace() at kdb_backtrace+0x37/frame 0xffffffcf75bd5bf0
>> panic() at panic+0x1ce/frame 0xffffffcf75bd5cf0
>> trap_fatal() at trap_fatal+0x290/frame 0xffffffcf75bd5d50
>> trap_pfault() at trap_pfault+0x211/frame 0xffffffcf75bd5de0
>> trap() at trap+0x344/frame 0xffffffcf75bd5fe0
>> calltrap() at calltrap+0x8/frame 0xffffffcf75bd5fe0
>> --- trap 0xc, rip = 0xffffffff81983055, rsp = 0xffffffcf75bd60a0, rbp =
>> 0xffffffcf75bd68f0 ---
>> lzjb_compress() at lzjb_compress+0x185/frame 0xffffffcf75bd68f0
>> zio_compress_data() at zio_compress_data+0x92/frame 0xffffffcf75bd6920
>> zio_write_bp_init() at zio_write_bp_init+0x24b/frame 0xffffffcf75bd6970
>> zio_execute() at zio_execute+0xc3/frame 0xffffffcf75bd69b0
>> taskqueue_run_locked() at taskqueue_run_locked+0x74/**frame
>> 0xffffffcf75bd6a00
>> taskqueue_thread_loop() at taskqueue_thread_loop+0x46/**frame
>> 0xffffffcf75bd6a20
>> fork_exit() at fork_exit+0x11f/frame 0xffffffcf75bd6a70
>> fork_trampoline() at fork_trampoline+0xe/frame 0xffffffcf75bd6a70
>> --- trap 0, rip = 0, rsp = 0xffffffcf75bd6b30, rbp = 0 ---
>>
>> lzjb_compress+0x185 corresponds to line 85 in
>> 80 cpy = src - offset;
>> 81 if (cpy >= (uchar_t *)s_start && cpy != src &&
>> 82    src[0] == cpy[0] && src[1] == cpy[1] && src[2] == cpy[2]) {
>> 83 *copymap |= copymask;
>> 84 for (mlen = MATCH_MIN; mlen < MATCH_MAX; mlen++)
>> 85 if (src[mlen] != cpy[mlen])
>> 86 break;
>> 87 *dst++ = ((mlen - MATCH_MIN) << (NBBY - MATCH_BITS)) |
>> 88    (offset >> NBBY);
>> 89 *dst++ = (uchar_t)offset;
>>
>> I think it's the first time I've seen this panic. It happened while doing
>> a
>> send/receive. I have two pools with lzjb compression; I don't know which
>> of
>> these pools caused the problem, but one of them was the source of the
>> send/receive.
>>
>> I only have a textdump but I'm happy to try to provide more information
>> that could help anyone look into this.
>> Thanks
>> Olivier
>>
>
> Oh, I can add to this one. I have a full core dump of the same problem
> caused by copying large set of files from lzjb compressed pool to lz4
> compressed pool. vfs.zfs.recover was set.
>
> #1  0xffffffff8039d954 in kern_reboot (howto=260)
>     at /usr/src/sys/kern/kern_**shutdown.c:449
> #2  0xffffffff8039ddce in panic (fmt=<value optimized out>)
>     at /usr/src/sys/kern/kern_**shutdown.c:637
> #3  0xffffffff80620a6a in trap_fatal (frame=<value optimized out>,
>     eva=<value optimized out>) at /usr/src/sys/amd64/amd64/trap.**c:879
> #4  0xffffffff80620d25 in trap_pfault (frame=0x0, usermode=0)
>     at /usr/src/sys/amd64/amd64/trap.**c:700
> #5  0xffffffff806204f6 in trap (frame=0xffffff821ca43600)
>     at /usr/src/sys/amd64/amd64/trap.**c:463
> #6  0xffffffff8060a032 in calltrap ()
>     at /usr/src/sys/amd64/amd64/**exception.S:232
> #7  0xffffffff805a9367 in vm_page_alloc (object=0xffffffff80a34030,
>     pindex=16633, req=97) at /usr/src/sys/vm/vm_page.c:1445
> #8  0xffffffff8059c42e in kmem_back (map=0xfffffe00010000e8,
>     addr=18446743524021862400, size=16384, flags=<value optimized out>)
>     at /usr/src/sys/vm/vm_kern.c:362
> #9  0xffffffff8059c2ac in kmem_malloc (map=0xfffffe00010000e8, size=16384,
>     flags=257) at /usr/src/sys/vm/vm_kern.c:313
> #10 0xffffffff80595104 in uma_large_malloc (size=<value optimized out>,
>     wait=257) at /usr/src/sys/vm/uma_core.c:994
> #11 0xffffffff80386b80 in malloc (size=16384, mtp=0xffffffff80ea7c40,
> flags=0)
>     at /usr/src/sys/kern/kern_malloc.**c:492
> #12 0xffffffff80c9e13c in lz4_compress (s_start=0xffffff80d0b19000,
>     d_start=0xffffff8159445000, s_len=131072, d_len=114688, n=-2)
>     at /usr/src/sys/modules/zfs/../..**/cddl/contrib/opensolaris/uts/**
> common/fs/zfs/lz4.c:843
> #13 0xffffffff80cdde25 in zio_compress_data (c=<value optimized out>,
>     src=<value optimized out>, dst=0xffffff8159445000, s_len=131072)
>     at /usr/src/sys/modules/zfs/../..**/cddl/contrib/opensolaris/uts/**
> common/fs/zfs/zio_compress.c:**109
> #14 0xffffffff80cda012 in zio_write_bp_init (zio=0xfffffe0143a12000)
>     at /usr/src/sys/modules/zfs/../..**/cddl/contrib/opensolaris/uts/**
> common/fs/zfs/zio.c:1107
> #15 0xffffffff80cd8ec6 in zio_execute (zio=0xfffffe0143a12000)
>     at /usr/src/sys/modules/zfs/../..**/cddl/contrib/opensolaris/uts/**
> common/fs/zfs/zio.c:1305
> #16 0xffffffff803e25e6 in taskqueue_run_locked (queue=0xfffffe00060ca300)
>     at /usr/src/sys/kern/subr_**taskqueue.c:312
> #17 0xffffffff803e2e38 in taskqueue_thread_loop (arg=<value optimized out>)
>     at /usr/src/sys/kern/subr_**taskqueue.c:501
> #18 0xffffffff8036f40a in fork_exit (
>     callout=0xffffffff803e2da0 <taskqueue_thread_loop>,
>     arg=0xfffffe00060cc3d0, frame=0xffffff821ca43a80)
>     at /usr/src/sys/kern/kern_fork.c:**988
> #19 0xffffffff8060a56e in fork_trampoline ()
>     at /usr/src/sys/amd64/amd64/**exception.S:606
>
> I have a full crash dump in case someone wants to look at it.
>
> --
> Sphinx of black quartz, judge my vow.
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALC5%2B1MmfeyuMBxQBrzc15oQKm%2BEgi%2BWAKwTQ3epYG1heEfiVw>