Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Sep 2006 19:00:43 GMT
From:      clemens fischer <ino-news@spotteswoode.dnsalias.org>
To:        freebsd-geom@FreeBSD.org
Subject:   Re: kern/89102:[geom_vfs] [panic] panic when forced unmount FS from unplugged device
Message-ID:  <200609151900.k8FJ0hNX089765@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/89102; it has been noted by GNATS.

From: clemens fischer <ino-news@spotteswoode.dnsalias.org>
To: bug-followup@FreeBSD.org, bu7cher@yandex.ru
Cc:  
Subject: Re: kern/89102:[geom_vfs] [panic] panic when forced unmount FS from unplugged device
Date: Fri, 15 Sep 2006 20:53:59 +0200

 i had a crash related to this topic, but at another location.  it
 happened after using umount(8) on a card-reader, but this time _without_
 using the `-f' flag.  the messages "(CTRL-C to abort)" were not shown on
 the screen, instead the machine just rebooted.  here's the backtrace:
 
 --- start of dump ---
 /usr/obj/usr/src/sys/spott
 0  # kgdb kernel.debug /var/crash/vmcore.2
 kgdb: kvm_nlist(_stopped_cpus):
 kgdb: kvm_nlist(_stoppcbs):
 [GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
 GNU gdb 6.1.1 [FreeBSD]
 This GDB was configured as "i386-marcel-freebsd".
 
 Unread portion of the kernel message buffer:
 panic: vinvalbuf: dirty bufs
 Uptime: 1h12m4s
 (da0:dead_sim0:0:0:0): Synchronize cache failed, status == 0x8, scsi status == 0x0
 Dumping 383 MB (2 chunks)
   chunk 0: 1MB (159 pages) ... ok
   chunk 1: 383MB (98048 pages) 368 352 336 320 304 288 272 (CTRL-C to abort)  256 (CTRL-C to abort)  240 (CTRL-C to abort)  224 208 192 176 160 144 128 112 96 80 64 48 32 (CTRL-C to abort)  16 (CTRL-C to abort)
 
 #0  doadump () at pcpu.h:165
 165             __asm __volatile("movl %%fs:0,%0" : "=r" (td));
 (kgdb) bt full
 #0  doadump () at pcpu.h:165
 No locals.
 #1  0xc052d27c in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
         first_buf_printf = 1
 #2  0xc052d589 in panic (fmt=0xc06cc79b "vinvalbuf: dirty bufs") at /usr/src/sys/kern/kern_shutdown.c:565
         td = (struct thread *) 0xc2b8bd80
         bootopt = 260
         newpanic = 0
         ap = 0xc2b8bd80 "\f\022@�\200�x�"
         buf = "vinvalbuf: dirty bufs", '\0' <repeats 234 times>
 #3  0xc05984a0 in bufobj_invalbuf (bo=0xc3213e90, flags=1, td=0x0, slpflag=0, slptimeo=0)
     at /usr/src/sys/kern/vfs_subr.c:1015
         error = 0
 #4  0xc0598802 in vinvalbuf (vp=0xc3213dd0, flags=0, td=0x0, slpflag=0, slptimeo=0)
     at /usr/src/sys/kern/vfs_subr.c:1082
 No locals.
 #5  0xc059baf4 in vgonel (vp=0xc3213dd0) at /usr/src/sys/kern/vfs_subr.c:2436
         td = (struct thread *) 0xc2b8bd80
         oweinact = 0
         active = 1
         mp = (struct mount *) 0xc270f400
 #6  0xc059b9c8 in vgone (vp=0xc3213dd0) at /usr/src/sys/kern/vfs_subr.c:2391
 No locals.
 #7  0xc04da8b6 in devfs_delete (dm=0xc27a4880, de=0xc32afb80) at /usr/src/sys/fs/devfs/devfs_devs.c:244
 No locals.
 #8  0xc04dab2a in devfs_populate_loop (dm=0xc27a4880, cleanup=0) at /usr/src/sys/fs/devfs/devfs_devs.c:352
         cdp = (struct cdev_priv *) 0xc2b8e600
         de = (struct devfs_dirent *) 0xc32afb80
         dd = (struct devfs_dirent *) 0x0
         pdev = (struct cdev *) 0xc27aa000
         j = 0
         q = 0x0
         s = 0xc27aa000 "\002"
 #9  0xc04dadd5 in devfs_populate (dm=0xc27a4880) at /usr/src/sys/fs/devfs/devfs_devs.c:448
 No locals.
 #10 0xc04dd02f in devfs_lookupx (ap=0x0) at /usr/src/sys/fs/devfs/devfs_vnops.c:512
         cnp = (struct componentname *) 0xd5d19be8
         dvp = (struct vnode *) 0xc27aa000
         vpp = (struct vnode **) 0xd5d19bd4
         td = (struct thread *) 0xc2b8bd80
         de = (struct devfs_dirent *) 0x2002
         dd = (struct devfs_dirent *) 0xc27a4600
         dde = (struct devfs_dirent **) 0x0
         dmp = (struct devfs_mount *) 0xc27a4880
         cdev = (struct cdev *) 0xc05ab1ac
         error = -1032173424
         flags = 18923588
         nameiop = 0
         specname = "$\231��\000\000\000\000�\230��\"�X�\b\234z�\006\000\000\000,\234z�\200����\230�հ\233z��\230��إY�\233z°\233z�@\231��\016�Y�"
         pname = 0xc27ab805 "tty"
 #11 0xc04dd1ce in devfs_lookup (ap=0xd5d19998) at /usr/src/sys/fs/devfs/devfs_vnops.c:576
         j = -707683944
         dmp = (struct devfs_mount *) 0xc27a4890
 #12 0xc06a7194 in VOP_LOOKUP_APV (vop=0xc06efbe0, a=0xd5d19998) at vnode_if.c:99
         rc = -1066468384
 #13 0xc05911fb in lookup (ndp=0xd5d19bc0) at vnode_if.h:56
         cp = 0xc27ab808 ""
         dp = (struct vnode *) 0xc27aa000
         tdp = (struct vnode *) 0xc27aa000
         mp = (struct mount *) 0x0
         docache = 32
         wantparent = 0
         rdonly = 0
         trailing_slash = 0
         error = 0
         dpunlocked = 0
         cnp = (struct componentname *) 0xd5d19be8
         td = (struct thread *) 0xc2b8bd80
         vfslocked = 0
         dvfslocked = 0
         tvfslocked = 0
 #14 0xc0590968 in namei (ndp=0xd5d19bc0) at /usr/src/sys/kern/vfs_lookup.c:203
         fdp = (struct filedesc *) 0xc32b1500
         cp = 0xc32b1500 ""
         dp = (struct vnode *) 0xc27a9bb0
         aiov = {iov_base = 0x0, iov_len = 0}
         auio = {uio_iov = 0xc01e0, uio_iovcnt = 0, uio_offset = 16384, uio_resid = 0, uio_segflg = 3273065636,
   uio_rw = UIO_READ, uio_td = 0x0}
         error = -1032152144
         linklen = -1032152144
         cnp = (struct componentname *) 0xd5d19be8
         td = (struct thread *) 0xc2b8bd80
         p = (struct proc *) 0x0
         vfslocked = 0
 #15 0xc05a9cd7 in vn_open_cred (ndp=0xd5d19bc0, flagp=0xd5d19cc0, cmode=2504, cred=0xc2bad780, fdidx=3)
     at /usr/src/sys/kern/vfs_vnops.c:182
         vp = (struct vnode *) 0x0
         mp = (struct mount *) 0x2
         td = (struct thread *) 0xc2b8bd80
         vat = {va_type = 3266887040, va_mode = 0, va_nlink = 0, va_uid = 3587283628, va_gid = 3226451657,
   va_fsid = 4294967280, va_fileid = 0, va_size = 15407266001175183363, va_blocksize = -1068515300, va_atime = {
     tv_sec = -1020586752, tv_nsec = 3}, va_mtime = {tv_sec = 256, tv_nsec = 3}, va_ctime = {
     tv_sec = -1020586752, tv_nsec = -1019211252}, va_birthtime = {tv_sec = -707683592, tv_nsec = -1068500313},
   va_gen = 3274380544, va_flags = 3, va_rdev = 256, va_bytes = 3587283724, va_filerev = 17179874663,
   va_vaflags = 3275756044, va_spare = -1029671664}
         mode = -707683720
         fmode = 1
         error = -707683068
         vfslocked = 0
 #16 0xc05a99b3 in vn_open (ndp=0x0, flagp=0x0, cmode=0, fdidx=0) at /usr/src/sys/kern/vfs_vnops.c:91
         td = (struct thread *) 0x0
 #17 0xc05a05e8 in kern_open (td=0xc2b8bd80, path=0x0, pathseg=UIO_USERSPACE, flags=1, mode=-1077945896)
     at /usr/src/sys/kern/vfs_syscalls.c:1002
         p = (struct proc *) 0x0
         fdp = (struct filedesc *) 0xc32b1500
         fp = (struct file *) 0xc2a07510
         vp = (struct vnode *) 0xc2713800
         vat = {va_type = 3275756044, va_mode = 40008, va_nlink = -10799, va_uid = 3226741305,
   va_gid = 3228675648, va_fsid = 3261295572, va_fileid = 0, va_size = 13858750082021694556, va_blocksize = 0,
   va_atime = {tv_sec = 0, tv_nsec = -1028080256}, va_mtime = {tv_sec = 6, tv_nsec = -1068226384}, va_ctime = {
     tv_sec = -1028080256, tv_nsec = -1033672064}, va_birthtime = {tv_sec = -1066434944, tv_nsec = 60211073},
   va_gen = 3275756212, va_flags = 3275756044, va_rdev = 3587284176, va_bytes = 14031172999752930889,
   va_filerev = 8589934592, va_vaflags = 3119171692, va_spare = -134132641}
         mp = (struct mount *) 0xc31a9aa0
         cmode = 0
         nfp = (struct file *) 0xc2a07510
         type = 0
         indx = 3
         error = -707683068
         lf = {l_start = -4415571073916420396, l_len = -3039476491986403325, l_pid = -1068226135,
   l_type = -17024, l_whence = -15688}
         nd = {ni_dirp = 0x806120a <Address 0x806120a out of bounds>, ni_segflg = UIO_USERSPACE,
   ni_startdir = 0x0, ni_rootdir = 0xc27a9bb0, ni_topdir = 0x0, ni_vp = 0x0, ni_dvp = 0xc27aa000,
   ni_pathlen = 1, ni_next = 0xc27ab808 "", ni_loopcnt = 0, ni_cnd = {cn_nameiop = 0, cn_flags = 18923588,
     cn_thread = 0xc2b8bd80, cn_cred = 0xc2bad780, cn_lkflags = 2, cn_pnbuf = 0xc27ab800 "/dev/tty",
     cn_nameptr = 0xc27ab805 "tty", cn_namelen = 3, cn_consume = 0}}
         vfslocked = -1028080256
 #18 0xc05a04d6 in open (td=0x0, uap=0xd5d19d04) at /usr/src/sys/kern/vfs_syscalls.c:968
         error = -1028080256
 #19 0xc0692c30 in syscall (frame=
       {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 134599286, tf_esi = 134668416, tf_ebp = -1077945944, tf_isp = -707682972, tf_ebx = -1077945836, tf_edx = 53, tf_ecx = 134668416, tf_eax = 5, tf_trapno = 0, tf_err = 2, tf_eip = 672773295, tf_cs = 51, tf_eflags = 646, tf_esp = -1077945956, tf_ss = 59})
     at /usr/src/sys/i386/i386/trap.c:981
         params = 0xbfbfd9a0 <Address 0xbfbfd9a0 out of bounds>
         callp = (struct sysent *) 0xc06f1b9c
         td = (struct thread *) 0xc2b8bd80
         p = (struct proc *) 0xc340120c
         orig_tf_eflags = 646
         sticks = 1
         error = 0
         narg = 3
         args = {134615562, 0, -1077945896, -707683028, -1066837953, -1066330208, -707683020, 134629856}
         code = 5
 #20 0xc067e03f in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:200
 No locals.
 #21 0x00000033 in ?? ()
 No symbol table info available.
 Previous frame inner to this frame (corrupt stack?)
 (kgdb) l
 layout  list    load
 (kgdb) l
 200             call    syscall
 201             MEXITCOUNT
 202             jmp     doreti
 203
 204     ENTRY(fork_trampoline)
 205             pushl   %esp                    /* trapframe pointer */
 206             pushl   %ebx                    /* arg1 */
 207             pushl   %esi                    /* function */
 208             call    fork_exit
 209             addl    $12,%esp
 --- end of dump ---
 
 i have two questions regarding this backtrace:
 
   [GDB will not be able to debug user-mode threads:
   /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
 
 what does this mean?
 
 also:
 
   #20 0xc067e03f in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:200
   No locals.
   #21 0x00000033 in ?? ()
   No symbol table info available.
   Previous frame inner to this frame (corrupt stack?)
 
 you guys always post such beautiful kgdb usages with complete
 backtraces, why do i have a funny frame 21 (IP = 0x33)?
 
 regards, clemens



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609151900.k8FJ0hNX089765>