Crash on adding L2ARC to raidz1 pool

From: Lev Serebryakov <lev_at_FreeBSD.org>
Date: Mon, 08 Jan 2024 17:34:24 UTC
Hello!

   System: FreeBSD 13.2-STABLE stable/13-n256849-05c55eed44e5 BLOB amd64

   I'm still trying to add NVMe L2ARC to my 5xHDD RADIZ1 pool. Last attempt of adding 640GiB (10x RAM) GPT partition on NVMe (AData Legend 960) leads to instant crash.

   I have:

vfs.zfs.compressed_arc_enabled=0
vfs.zfs.abd_scatter_enabled=0


   Fortunately, crashdump was successful. Here is backtrace:

db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0162741a30
vpanic() at vpanic+0x152/frame 0xfffffe0162741a80
panic() at panic+0x43/frame 0xfffffe0162741ae0
vm_fault() at vm_fault+0x11cb/frame 0xfffffe0162741bf0
vm_fault_trap() at vm_fault_trap+0xb0/frame 0xfffffe0162741c40
trap_pfault() at trap_pfault+0x1ee/frame 0xfffffe0162741ca0
calltrap() at calltrap+0x8/frame 0xfffffe0162741ca0
--- trap 0xc, rip = 0xffffffff809350e5, rsp = 0xfffffe0162741d70, rbp = 0xfffffe0162741d70 ---
memset_std() at memset_std+0xe5/frame 0xfffffe0162741d70
l2arc_feed_thread() at l2arc_feed_thread+0xe83/frame 0xfffffe0162741ef0

  or

#9  <signal handler called>
No locals.
#10 memset_std () at /usr/src/sys/amd64/amd64/support.S:670
No locals.
#11 0xffffffff81233fb3 in l2arc_apply_transforms (spa=0xfffffe028928b000,
     hdr=0xfffff8036e5835a0, asize=4096, abd_out=<optimized out>)
     at /usr/src/sys/contrib/openzfs/module/zfs/arc.c:9372
         mac = '\000' <repeats 15 times>
         tmp = 0xfffffe0f9cbba800
         cabd = 0xfffff806842f2e80
         eabd = 0x0
         to_write = <optimized out>
         compress = <optimized out>
         psize = 0
         size = 1536
         ismd = 131072
         dck = 0x0
         no_crypt = 0
         ret = <optimized out>
         bswap = <optimized out>
         out = <optimized out>
#12 l2arc_write_buffers (spa=0xfffffe028928b000, dev=0xfffffe0f9cce0000,
     target_sz=9502720) at /usr/src/sys/contrib/openzfs/module/zfs/arc.c:9606
         type = ARC_BUFC_METADATA
         ret = <optimized out>
         to_write = 0x0
         hash_lock = 0xffffffff814d48a0 <buf_hash_table+14496>
         psize = 512
         asize = 4096
         passed_sz = 2041344
         mls = <optimized out>
         pass = 1
         cb = 0xfffff8086d0ea200
         guid = 16009569622998995335
         l2dhdr = 0xfffff8097cfce000
         pio = 0xfffff80937081000
         write_psize = 578048
         write_asize = 1499136
         write_lsize = <optimized out>
         full = 0
         head = 0xfffff809b7b37e40
         hdr = 0xfffff8036e5835a0
         headroom = 19005440
         hdr_prev = 0xfffff80dd5a70a50
         wzio = <optimized out>
         pass = <optimized out>
         passed_sz = <optimized out>
         mls = <optimized out>
         to_write = <optimized out>
         hash_lock = <optimized out>
         psize = <optimized out>
         asize = <optimized out>
         type = <optimized out>
         ret = <optimized out>
         _verify3_left = <optimized out>
         _verify3_right = <optimized out>
#13 l2arc_feed_thread (unused=<optimized out>)
     at /usr/src/sys/contrib/openzfs/module/zfs/arc.c:9830
         cpr = {cc_lockp = 0xffffffff814e1568 <l2arc_feed_thr_lock>,
           cc_events = 0 '\000', cc_id = 0xfffff800175fed00, cc_callb_cv = {
             cv_description = 0xffffffff8143dbd9 <.L.str.47+3> "cpr)->cc_callb_cv", cv_waiters = 0}, cc_stop_cv = {
             cv_description = 0xffffffff8143ac72 <.L.str.48+3> "cpr)->cc_stop_cv", cv_waiters = 0}}
         next = <optimized out>
         cookie = 0
         dev = 0xfffffe0f9cce0000
         spa = 0xfffffe028928b000
         begin = 1662606050
         size = 9502720
         wrote = <optimized out>
#14 0xffffffff805e90dd in fork_exit (
     callout=0xffffffff81233130 <l2arc_feed_thread>, arg=0x0,
     frame=0xfffffe0162741f40) at /usr/src/sys/kern/kern_fork.c:1151
         td = 0xfffffe01623b31e0
         p = 0xfffffe0162367560
         dtd = <optimized out>
#15 <signal handler called>



-- 
// Lev Serebryakov