kern/129148: [zfs] [panic] panic on concurrent writing & rollback

Anonymous swell.k at gmail.com
Sat Jul 11 02:30:03 UTC 2009


The following reply was made to PR kern/129148; it has been noted by GNATS.

From: Anonymous <swell.k at gmail.com>
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: kern/129148: [zfs] [panic] panic on concurrent writing & rollback
Date: Sat, 11 Jul 2009 06:28:03 +0400

 This panic makes rollback feature really unusable. I usually do:
 
     # cd /usr/src (svn checkout sources)
     # zfs snapshot q/usr/src at blah
     # zcat ~/some_big_patch.bz2 | patch -Efsp0 -F0
     ...
     # zfs rollback q/usr/src at blah
     # zcat ~/another_big_patch.bz2 | patch -Efsp0 -F0
   BANG! panics here
 
 Here is recent one for
 FreeBSD 8.0-BETA1 #0: Sat Jul  4 03:55:14 UTC 2009
     root at almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
 
 --- panic begins here ---
 $ qemu -no-kqemu -echr 3 -nographic \
      -hda /dev/zvol/h/home/luser/freebsd-i386 \
      -hdb /dev/zvol/h/home/luser/freebsd-i386-zpool
 [...]
 # zpool create q ad1
 # sh crash.sh
 cannot open 'q/test': dataset does not exist
 load: 0.90  cmd: sh 66 [runnable] 2.53r 0.28u 1.92s 29% 1808k
 
 Fatal trap 12: page fault while in kernel mode
 cpuid = 0; apic id = 00
 fault virtual address   = 0x4c
 fault code              = supervisor read, page not present
 instruction pointer     = 0x20:0xc087c9c3
 stack pointer           = 0x28:0xc89f5790
 frame pointer           = 0x28:0xc89f57b0
 code segment            = base 0x0, limit 0xfffff, type 0x1b
                         = DPL 0, pres 1, def32 1, gran 1
 processor eflags        = interrupt enabled, IOPL = 0
 current process         = 66 (sh)
 [thread pid 66 tid 100041 ]
 Stopped at      _sx_xlock+0x43: movl    0x10(%ebx),%eax
 db> show all locks
 Process 66 (sh) thread 0xc238db40 (100041)
 exclusive lockmgr zfs (zfs) r = 0 (0xc2613270) locked @ /usr/src/sys/kern/vfs_subr.c:880
 exclusive lockmgr zfs (zfs) r = 0 (0xc2613594) locked @ /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c:856
 db> show lockedvnods
 Locked vnodes
 
 0xc261353c: tag zfs, type VDIR
     usecount 2, writecount 0, refcount 2 mountedhere 0
     flags (VV_ROOT)
     lock type zfs: EXCL by thread 0xc238db40 (pid 66)
 
 0xc2613218: tag zfs, type VREG
     usecount 0, writecount 0, refcount 1 mountedhere 0
     flags (VI_DOOMED)
     lock type zfs: EXCL by thread 0xc238db40 (pid 66)
 db> show all pcpu
 Current CPU: 0
 
 cpuid        = 0
 dynamic pcpu    = 0x6aed54
 curthread    = 0xc238db40: pid 66 "sh"
 curpcb       = 0xc89f5d90
 fpcurthread  = 0xc238db40: pid 66 "sh"
 idlethread   = 0xc2156b40: pid 11 "idle: cpu0"
 APIC ID      = 0
 currentldt   = 0x50
 spin locks held:
 
 db> bt
 Tracing pid 66 tid 100041 td 0xc238db40
 _sx_xlock(3c,0,c24ba14d,70f,c2617ae0,...) at _sx_xlock+0x43
 dmu_buf_update_user(0,c2617ae0,0,0,0,...) at dmu_buf_update_user+0x35
 zfs_znode_dmu_fini(c2617ae0,c24c2fed,1114,110b,c26d5000,...) at zfs_znode_dmu_fini+0x43
 zfs_freebsd_reclaim(c89f5858,1,0,c2613218,c89f587c,...) at zfs_freebsd_reclaim+0xc0
 VOP_RECLAIM_APV(c24c65a0,c89f5858,0,0,c261328c,...) at VOP_RECLAIM_APV+0xa5
 vgonel(c261328c,0,c0c6567e,386,0,...) at vgonel+0x1a4
 vnlru_free(c0f16ef0,0,c0c6567e,3a1,c2da47ac,...) at vnlru_free+0x2d5
 getnewvnode(c24c0cfc,c237778c,c24c65a0,c89f58fc,c25baa80,...) at getnewvnode+0x4a
 zfs_znode_cache_constructor(c25bbe00,2,c24c1357,2fd,c2db8880,...) at zfs_znode_cache_constructor+0x2e
 zfs_znode_alloc(c26d5498,0,c24c1357,2fd,c89f5978,...) at zfs_znode_alloc+0x35
 zfs_mknode(c2617bc8,c89f5a60,c2d97000,c2152080,0,...) at zfs_mknode+0x286
 zfs_freebsd_create(c89f5ac8,c89f5ae0,0,0,c89f5ba8,...) at zfs_freebsd_create+0x722
 VOP_CREATE_APV(c24c65a0,c89f5ac8,c89f5bd4,c89f5a60,0,...) at VOP_CREATE_APV+0xa5
 vn_open_cred(c89f5ba8,c89f5c5c,1a4,0,c2152080,...) at vn_open_cred+0x200
 vn_open(c89f5ba8,c89f5c5c,1a4,c238f310,14,...) at vn_open+0x3b
 kern_openat(c238db40,ffffff9c,28304378,0,602,...) at kern_openat+0x118
 kern_open(c238db40,28304378,0,601,1b6,...) at kern_open+0x35
 open(c238db40,c89f5cf8,c,c0c5ee4b,c0d3c0ac,...) at open+0x30
 syscall(c89f5d38) at syscall+0x2a3
 Xint0x80_syscall() at Xint0x80_syscall+0x20
 --- syscall (5, FreeBSD ELF32, open), eip = 0x281d8fe3, esp = 0xbfbfe6cc, ebp = 0xbfbfe768 ---
 db> ps
   pid  ppid  pgrp   uid   state   wmesg     wchan    cmd
    69     0     0     0  SL      tq->tq_d 0xc257141c [zil_clean]
    68    67    60     0  S+      tx->tx_s 0xc27599e0 zfs
    67    60    60     0  S+      wait     0xc25de7f8 sh
    66    60    60     0  R+      CPU 0               sh
    60    19    60     0  S+      wait     0xc25ded48 sh
    57     0     0     0  SL      tq->tq_d 0xc25715a4 [zil_clean]
    54     0     0     0  SL      zio->io_ 0xc265ab94 [txg_thread_enter]
    53     0     0     0  SL      tx->tx_q 0xc27599e8 [txg_thread_enter]
    52     0     0     0  RL                          [vdev:worker ad1]
    51     0     0     0  SL      tq->tq_d 0xc2571668 [spa_zio]
    50     0     0     0  SL      tq->tq_d 0xc257172c [spa_zio]
    49     0     0     0  SL      tq->tq_d 0xc25717f0 [spa_zio]
    48     0     0     0  SL      tq->tq_d 0xc25718b4 [spa_zio]
    47     0     0     0  SL      tq->tq_d 0xc2571978 [spa_zio]
    46     0     0     0  SL      tq->tq_d 0xc2571a3c [spa_zio]
    45     0     0     0  SL      tq->tq_d 0xc2571b00 [spa_zio]
    44     0     0     0  SL      tq->tq_d 0xc2571bc4 [spa_zio]
    43     0     0     0  SL      tq->tq_d 0xc2571bc4 [spa_zio]
    42     0     0     0  SL      tq->tq_d 0xc2571bc4 [spa_zio]
    41     0     0     0  SL      tq->tq_d 0xc2571bc4 [spa_zio]
    40     0     0     0  SL      tq->tq_d 0xc2571bc4 [spa_zio]
    39     0     0     0  SL      tq->tq_d 0xc2571bc4 [spa_zio]
    38     0     0     0  SL      tq->tq_d 0xc2571bc4 [spa_zio]
    37     0     0     0  SL      tq->tq_d 0xc2571bc4 [spa_zio]
    36     0     0     0  SL      tq->tq_d 0xc2571c88 [spa_zio]
    35     0     0     0  SL      tq->tq_d 0xc2571c88 [spa_zio]
    34     0     0     0  SL      tq->tq_d 0xc2571c88 [spa_zio]
    33     0     0     0  SL      tq->tq_d 0xc2571c88 [spa_zio]
    32     0     0     0  SL      tq->tq_d 0xc2571c88 [spa_zio]
    31     0     0     0  SL      tq->tq_d 0xc2571c88 [spa_zio]
    30     0     0     0  SL      tq->tq_d 0xc2571c88 [spa_zio]
    29     0     0     0  SL      tq->tq_d 0xc2571c88 [spa_zio]
    28     0     0     0  SL      tq->tq_d 0xc2571d4c [spa_zio]
    27     0     0     0  SL      tq->tq_d 0xc2571e10 [spa_zio]
    26     0     0     0  SL      tq->tq_d 0xc2571ed4 [spa_zio]
    25     0     0     0  RL                          [l2arc_feed_thread]
    24     0     0     0  RL                          [arc_reclaim_thread]
    23     0     0     0  RL                          [vaclean]
    22     0     0     0  SL      tq->tq_d 0xc2572048 [system_taskq]
    19     1    19     0  Ss+     wait     0xc2376550 sh
    18     0     0     0  SL      flowclea 0xc0daa4a4 [flowcleaner]
    17     0     0     0  RL                          [softdepflush]
    16     0     0     0  RL                          [vnlru]
    15     0     0     0  RL                          [syncer]
    14     0     0     0  RL                          [bufdaemon]
     9     0     0     0  SL      pgzero   0xc0f23314 [pagezero]
     8     0     0     0  SL      psleep   0xc0f22f3c [vmdaemon]
     7     0     0     0  RL                          [pagedaemon]
     6     0     0     0  SL      waiting_ 0xc0f18d5c [sctp_iterator]
     5     0     0     0  SL      ccb_scan 0xc0d76fd4 [xpt_thrd]
    13     0     0     0  SL      -        0xc0daa4a4 [yarrow]
     4     0     0     0  SL      -        0xc0da8264 [g_down]
     3     0     0     0  SL      -        0xc0da8260 [g_up]
     2     0     0     0  SL      -        0xc0da8258 [g_event]
    12     0     0     0  WL      (threaded)          intr
 100029                   I                           [swi0: uart]
 100028                   I                           [irq7: ppc0]
 100027                   I                           [irq12: psm0]
 100026                   I                           [irq1: atkbd0]
 100025                   I                           [irq11: ed0]
 100024                   I                           [irq15: ata1]
 100023                   I                           [irq14: ata0]
 100022                   I                           [irq9: acpi0]
 100021                   I                           [swi6: task queue]
 100020                   I                           [swi6: Giant taskq]
 100018                   I                           [swi5: +]
 100013                   I                           [swi2: cambio]
 100006                   I                           [swi3: vm]
 100005                   I                           [swi4: clock]
 100004                   I                           [swi1: netisr 0]
    11     0     0     0  RL                          [idle: cpu0]
     1     0     1     0  SLs     wait     0xc2154d48 [init]
    10     0     0     0  SL      audit_wo 0xc0f21f80 [audit]
     0     0     0     0  SLs     (threaded)          kernel
 100019                   D       -        0xc2220d40 [thread taskq]
 100017                   D       -        0xc2221100 [kqueue taskq]
 100016                   D       -        0xc2221140 [acpi_task_2]
 100015                   D       -        0xc2221140 [acpi_task_1]
 100014                   D       -        0xc2221140 [acpi_task_0]
 100010                   D       -        0xc2138940 [firmware taskq]
 100000                   D       sched    0xc0da8320 [swapper]
 --- panic ends here ---


More information about the freebsd-fs mailing list