Date: Tue, 17 Feb 2009 20:49:50 -0500 From: Steve Wills <steve@mouf.net> To: stable@freebsd.org Cc: daichi@freebsd.org Subject: unionfs panic in 7.1 Message-ID: <95E82F15-2535-4C67-BDF0-44CFC7EB9FBB@mouf.net>
next in thread | raw e-mail | index | archive | help
Hi, I've found an reproducable panic in unionfs on 7.1-R. /usr/src/sys/fs/unionfs/union_subr.c is: $FreeBSD: src/sys/fs/unionfs/union_subr.c,v 1.92.2.7.2.2 =20 2008/12/15 03:58:55 daichi Exp $ kgdb output is below. kgdb /boot/kernel/kernel.symbols /var/crash/vmcore.0 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and =20 you are welcome to change it and/or distribute copies of it under certain =20 conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for =20 details. This GDB was configured as "amd64-marcel-freebsd"... Unread portion of the kernel message buffer: stack pointer =3D 0x10:0xffffffffb0e1a8b0 frame pointer =3D 0x10:0xffffffffb0e1a8d0 code segment =3D base 0x0, limit 0xfffff, type 0x1b =3D DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags =3D interrupt enabled, resume, IOPL =3D 0 current process =3D 72036 (make) panic: from debugger cpuid =3D 0 Uptime: 49m32s Physical memory: 2034 MB Dumping 441 MB: 426 410 394 378 362 346 330 314 298 282 266 250 234 =20 218 202 186 170 154 138 122 106 90 74 58 42 26 10 Reading symbols from /boot/kernel/if_tap.ko...Reading symbols from /=20 boot/kernel/if_tap.ko.symbols...done. done. Loaded symbols for /boot/kernel/if_tap.ko Reading symbols from /boot/kernel/snd_hda.ko...Reading symbols from /=20 boot/kernel/snd_hda.ko.symbols...done. done. Loaded symbols for /boot/kernel/snd_hda.ko Reading symbols from /boot/kernel/sound.ko...Reading symbols from /=20 boot/kernel/sound.ko.symbols...done. done. Loaded symbols for /boot/kernel/sound.ko Reading symbols from /boot/kernel/atapicam.ko...Reading symbols from /=20= boot/kernel/atapicam.ko.symbols...done. done. Loaded symbols for /boot/kernel/atapicam.ko Reading symbols from /boot/kernel/smb.ko...Reading symbols from /boot/=20= kernel/smb.ko.symbols...done. done. Loaded symbols for /boot/kernel/smb.ko Reading symbols from /boot/kernel/smbus.ko...Reading symbols from /=20 boot/kernel/smbus.ko.symbols...done. done. Loaded symbols for /boot/kernel/smbus.ko Reading symbols from /boot/kernel/linprocfs.ko...Reading symbols from /=20= boot/kernel/linprocfs.ko.symbols...done. done. Loaded symbols for /boot/kernel/linprocfs.ko Reading symbols from /boot/kernel/linux.ko...Reading symbols from /=20 boot/kernel/linux.ko.symbols...done. done. Loaded symbols for /boot/kernel/linux.ko Reading symbols from /boot/kernel/zfs.ko...Reading symbols from /boot/=20= kernel/zfs.ko.symbols...done. done. Loaded symbols for /boot/kernel/zfs.ko Reading symbols from /boot/kernel/opensolaris.ko...Reading symbols =20 from /boot/kernel/opensolaris.ko.symbols...done. done. Loaded symbols for /boot/kernel/opensolaris.ko Reading symbols from /boot/kernel/if_bridge.ko...Reading symbols from /=20= boot/kernel/if_bridge.ko.symbols...done. done. Loaded symbols for /boot/kernel/if_bridge.ko Reading symbols from /boot/kernel/bridgestp.ko...Reading symbols from /=20= boot/kernel/bridgestp.ko.symbols...done. done. Loaded symbols for /boot/kernel/bridgestp.ko Reading symbols from /usr/local/modules/fuse.ko...done. Loaded symbols for /usr/local/modules/fuse.ko Reading symbols from /boot/kernel/radeon.ko...Reading symbols from /=20 boot/kernel/radeon.ko.symbols...done. done. Loaded symbols for /boot/kernel/radeon.ko Reading symbols from /boot/kernel/drm.ko...Reading symbols from /boot/=20= kernel/drm.ko.symbols...done. done. Loaded symbols for /boot/kernel/drm.ko Reading symbols from /boot/kernel/unionfs.ko...Reading symbols from /=20 boot/kernel/unionfs.ko.symbols...done. done. Loaded symbols for /boot/kernel/unionfs.ko Reading symbols from /boot/kernel/nullfs.ko...Reading symbols from /=20 boot/kernel/nullfs.ko.symbols...done. done. Loaded symbols for /boot/kernel/nullfs.ko #0 doadump () at pcpu.h:195 195 pcpu.h: No such file or directory. in pcpu.h (kgdb) bt #0 doadump () at pcpu.h:195 #1 0xffffffff804c70a8 in boot (howto=3D260) at /usr/src/sys/kern/=20 kern_shutdown.c:418 #2 0xffffffff804c750c in panic (fmt=3DVariable "fmt" is not available. ) at /usr/src/sys/kern/kern_shutdown.c:574 #3 0xffffffff801c1707 in db_panic (addr=3DVariable "addr" is not =20 available. ) at /usr/src/sys/ddb/db_command.c:446 #4 0xffffffff801c1d6f in db_command (last_cmdp=3D0xffffffff80aa6448, =20= cmd_table=3D0x0, dopager=3D1) at /usr/src/sys/ddb/db_command.c:413 #5 0xffffffff801c1f80 in db_command_loop () at /usr/src/sys/ddb/=20 db_command.c:466 #6 0xffffffff801c3b69 in db_trap (type=3DVariable "type" is not =20 available. ) at /usr/src/sys/ddb/db_main.c:228 #7 0xffffffff804f3955 in kdb_trap (type=3D12, code=3D0, =20 tf=3D0xffffffffb0e1a800) at /usr/src/sys/kern/subr_kdb.c:524 #8 0xffffffff807a3180 in trap_fatal (frame=3D0xffffffffb0e1a800, =20 eva=3DVariable "eva" is not available. ) at /usr/src/sys/amd64/amd64/trap.c:759 #9 0xffffffff807a3554 in trap_pfault (frame=3D0xffffffffb0e1a800, =20 usermode=3D0) at /usr/src/sys/amd64/amd64/trap.c:680 #10 0xffffffff807a3eda in trap (frame=3D0xffffffffb0e1a800) at /usr/src/=20= sys/amd64/amd64/trap.c:449 #11 0xffffffff80788dde in calltrap () at /usr/src/sys/amd64/amd64/=20 exception.S:209 #12 0xffffffff804b9f0e in _mtx_lock_sleep (m=3D0xffffff006c384638, =20 tid=3D18446742974280188784, opts=3DVariable "opts" is not available. ) at /usr/src/sys/kern/kern_mutex.c:339 #13 0xffffffff80555767 in vn_start_write (vp=3D0xffffff006c4983f0, =20 mpp=3DVariable "mpp" is not available. ) at /usr/src/sys/kern/vfs_vnops.c:902 #14 0xffffffff805574a1 in vn_close (vp=3D0xffffff006c4983f0, flags=3D1, =20= file_cred=3D0xffffff0015947500, td=3D0xffffff0004e74370) at = /usr/src/sys/=20 kern/vfs_vnops.c:287 #15 0xffffffff80557589 in vn_closefile (fp=3D0xffffff006c020e00, =20 td=3D0xffffff0004e74370) at /usr/src/sys/kern/vfs_vnops.c:867 #16 0xffffffff8049331f in fdrop (fp=3D0xffffff006c020e00, =20 td=3D0xffffff0004e74370) at file.h:299 #17 0xffffffff80494579 in closef (fp=3D0xffffff006c020e00, =20 td=3D0xffffff0004e74370) at /usr/src/sys/kern/kern_descrip.c:2033 #18 0xffffffff80494d5d in kern_close (td=3D0xffffff0004e74370, =20 fd=3DVariable "fd" is not available. ) at /usr/src/sys/kern/kern_descrip.c:1125 #19 0xffffffff807a37d6 in syscall (frame=3D0xffffffffb0e1ac80) at /usr/=20= src/sys/amd64/amd64/trap.c:907 #20 0xffffffff80788feb in Xfast_syscall () at /usr/src/sys/amd64/amd64/=20= exception.S:330 #21 0x000000000044030c in ?? () Previous frame inner to this frame (corrupt stack?) (kgdb) frame 12 #12 0xffffffff804b9f0e in _mtx_lock_sleep (m=3D0xffffff006c384638, =20 tid=3D18446742974280188784, opts=3DVariable "opts" is not available. ) at /usr/src/sys/kern/kern_mutex.c:339 339 owner =3D (struct thread *)(v & = ~MTX_FLAGMASK); (kgdb) list 334 * If the owner is running on another CPU, spin = until the 335 * owner stops running or the state of the lock = changes. 336 */ 337 v =3D m->mtx_lock; 338 if (v !=3D MTX_UNOWNED) { 339 owner =3D (struct thread *)(v & = ~MTX_FLAGMASK); 340 #ifdef ADAPTIVE_GIANT 341 if (TD_IS_RUNNING(owner)) { 342 #else 343 if (m !=3D &Giant && = TD_IS_RUNNING(owner)) { (kgdb) p v $1 =3D 0 (kgdb) p m $2 =3D (struct mtx *) 0xffffff006c384638 (kgdb) p *m $3 =3D {lock_object =3D {lo_name =3D 0x0, lo_type =3D 0x0, lo_flags =3D =20= 1281410792, lo_witness_data =3D {lod_list =3D {stqe_next =3D =20 0xffffff004c60c708}, lod_witness =3D 0xffffff004c60c708}}, mtx_lock =3D 0, mtx_recurse = =3D =20 0} (kgdb) frame 13 #13 0xffffffff80555767 in vn_start_write (vp=3D0xffffff006c4983f0, =20 mpp=3DVariable "mpp" is not available. ) at /usr/src/sys/kern/vfs_vnops.c:902 902 MNT_ILOCK(mp); (kgdb) list 897 return (0); 898 } 899 } 900 if ((mp =3D *mpp) =3D=3D NULL) 901 return (0); 902 MNT_ILOCK(mp); 903 if (vp =3D=3D NULL) 904 MNT_REF(mp); 905 /* 906 * Check on status of suspension. (kgdb) p mp $4 =3D (struct mount *) 0xffffff006c3845e8 (kgdb) p *mp $5 =3D {mnt_lock =3D {lk_object =3D {lo_name =3D 0x1 <Address 0x1 out of = =20 bounds>, lo_type =3D 0xffffffffb1029552 "unionfs", lo_flags =3D =20 2969738112, lo_witness_data =3D { lod_list =3D {stqe_next =3D 0xffffff003c980000}, lod_witness =3D = =20 0xffffff003c980000}}, lk_interlock =3D 0xffffff0015d46378, lk_flags =3D = 0, =20 lk_sharecount =3D 0, lk_waitcount =3D 775638512, lk_exclusivecount =3D -256, lk_prio =3D = -1, =20 lk_timo =3D 0, lk_lockholder =3D 0x0, lk_newlock =3D 0x0}, mnt_mtx =3D =20= {lock_object =3D { lo_name =3D 0x0, lo_type =3D 0x0, lo_flags =3D 1281410792, =20 lo_witness_data =3D {lod_list =3D {stqe_next =3D 0xffffff004c60c708}, =20= lod_witness =3D 0xffffff004c60c708}}, mtx_lock =3D 0, mtx_recurse =3D 0}, mnt_gen =3D 0, mnt_list =3D = {tqe_next =20 =3D 0x0, tqe_prev =3D 0x0}, mnt_op =3D 0xffffffffb1029552, mnt_vfc =3D =20= 0xffffffffb1029552, mnt_vnodecovered =3D 0x4390000, mnt_syncer =3D 0x0, mnt_ref =3D =20 -2136101936, mnt_nvnodelist =3D {tqh_first =3D 0x80, tqh_last =3D =20 0x50000000000000}, mnt_nvnodelistsize =3D 51, mnt_writeopcount =3D 0, mnt_kern_flag =3D = -1, =20 mnt_flag =3D 4294967295, mnt_noasync =3D 0, mnt_opt =3D = 0xffffffff8086e910, mnt_optnew =3D 0xffffffff8086e910, mnt_maxsymlinklen =3D 16973824, =20= mnt_stat =3D {f_version =3D 0, f_type =3D 0, f_flags =3D 4, f_bsize =3D = 0, f_iosize =3D 18446742976017063016, f_blocks =3D 4294967297, f_bfree = =3D =20 0, f_bavail =3D 0, f_files =3D 0, f_ffree =3D 0, f_syncwrites =3D 0, f_asyncwrites =3D 18446742976013551312, f_syncreads =3D 0, =20 f_asyncreads =3D 18446742976013551424, f_spare =3D {0, 0, 0, =20 18446742976013551456, 0, 0, 0, 0, 18446744071572912256, 16384}, f_namemax =3D 784962992, f_owner =3D = =20 4294967040, f_fsid =3D {val =3D {0, 0}}, f_charspare =3D = "\000\000\000\000\000\000\000\000=C3=8BE8l\000=CB=87=CB=87=CB=87=C3=8BE8l=20= \000=CB=87=CB=87=CB=87", '\0' <repeats 24 times>, =20 "\001\000\000\000\000\000\000\000\023\016\206\200=CB=87=CB=87=CB=87=CB=87\= 2001=C3=9F=20 \200=CB=87=CB=87=CB=87=CB=87Xy=E2=81=84l\000=CB=87=CB=87=CB=87", = f_fstypename =3D "xsv\004\000=CB=87=CB=87=CB=87=E2=80=93K8l=20 \000=CB=87=CB=87=CB=87", f_mntfromname =3D "\030D8l\000=CB=87=CB=87=CB=87", '\0' <repeats 16 = times>, =20 "\200o\034\201=CB=87=CB=87=CB=87=CB=87=E2=88=82L\003\003", '\0' <repeats = 12 times>, "=E2=88=8F=20 \227\tJ\000=CB=87=CB=87=CB=87=E2=88=8F=C2=A8`L\000=CB=87=CB=87=CB=87\000\0= 00\000\000\000\000\000\000\b=20 \000\000\000\000\000\000\000 \031L0\000\000\000", f_mntonname =3D "\a", '\0' <repeats 15 times>, =20 "\023\016\206\200=CB=87=CB=87=CB=87=CB=87\023\016\206\200=CB=87=CB=87=CB=87= =CB=87\000\0009\004", '\0' =20 <repeats 12 times>, "=E2=80=A1\230=E2=89=A0\200=CB=87=CB=87=CB=87=CB=87@",= '\0' <repeats 13 times>, =20 "P\0003\000\000\000\000\000\000\000=CB=87=CB=87=CB=87=CB=87=CB=87=CB=87=CB= =87=CB=87"}, mnt_cred =3D 0x0, =20 mnt_data =3D 0xffffffff8086e910, mnt_time =3D -2138642160, = mnt_iosize_max =20 =3D 16973824, mnt_export =3D 0x0, mnt_label =3D 0x4, mnt_hashseed =3D 0, = mnt_markercnt =20 =3D 0, mnt_holdcnt =3D 1815627896, mnt_holdcntwaiters =3D -256, =20 mnt_secondary_writes =3D 10, mnt_secondary_accwrites =3D 0, mnt_gjprovider =3D 0x0, mnt_explock =3D = =20 {lk_object =3D {lo_name =3D 0x0, lo_type =3D 0x0, lo_flags =3D 0, =20 lo_witness_data =3D {lod_list =3D { stqe_next =3D 0x0}, lod_witness =3D 0x0}}, lk_interlock =3D =20= 0xffffff006c3848c8, lk_flags =3D 2589843616, lk_sharecount =3D -1, =20 lk_waitcount =3D -1707370640, lk_exclusivecount =3D -1, lk_prio =3D -1, lk_timo =3D -1707370720, =20= lk_lockholder =3D 0x9, lk_newlock =3D 0x0}} (kgdb) I reproduce this by unionfs mounting a ports dir used by the ports =20 tinderbox. If anyone would like more info, please let me know, I have =20= the core around, and can reproduce, help debug, resend in case my =20 mailer has mangled this, etc. Thanks, Steve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?95E82F15-2535-4C67-BDF0-44CFC7EB9FBB>