Date: Sat, 2 Jul 2016 14:31:22 -0400 From: David Cross <dcrosstech@gmail.com> To: freebsd-stable@freebsd.org, freebsd-hackers@freebsd.org Subject: Reproducable panic in FFS with softupdates and no journaling (10.3-RELEASE-pLATEST) Message-ID: <CAM9edeOek_zqRPt-0vDMNMK9CH31yAeVPAirWVvcuUWy5xsm4A@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Ok, I have been trying to trace this down for awhile..I know quite a bit about it.. but there's a lot I don't know, or I would have a patch. I have been trying to solve this on my own, but bringing in some outside assistance will let me move on with my life. First up: The stacktrace (from a debugging kernel, with coredump #0 doadump (textdump=1) at /usr/src/sys/kern/kern_shutdown.c:298 #1 0xffffffff8071018a in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:486 #2 0xffffffff80710afc in vpanic ( fmt=0xffffffff80c7a325 "softdep_deallocate_dependencies: dangling deps b_ioflags: %d, b_bufsize: %ld, b_flags: %d, bo_flag: %d", ap=0xfffffe023ae5cf40) at /usr/src/sys/kern/kern_shutdown.c:889 #3 0xffffffff807108c0 in panic ( fmt=0xffffffff80c7a325 "softdep_deallocate_dependencies: dangling deps b_ioflags: %d, b_bufsize: %ld, b_flags: %d, bo_flag: %d") at /usr/src/sys/kern/kern_shutdown.c:818 #4 0xffffffff80a7c841 in softdep_deallocate_dependencies ( bp=0xfffffe01f030e148) at /usr/src/sys/ufs/ffs/ffs_softdep.c:14099 #5 0xffffffff807f793f in buf_deallocate (bp=0xfffffe01f030e148) at buf.h:428 #6 0xffffffff807f59c9 in brelse (bp=0xfffffe01f030e148) at /usr/src/sys/kern/vfs_bio.c:1599 #7 0xffffffff807f3132 in bufwrite (bp=0xfffffe01f030e148) at /usr/src/sys/kern/vfs_bio.c:1180 #8 0xffffffff80ab226a in bwrite (bp=0xfffffe01f030e148) at buf.h:395 #9 0xffffffff80aafb1b in ffs_write (ap=0xfffffe023ae5d2b8) at /usr/src/sys/ufs/ffs/ffs_vnops.c:800 #10 0xffffffff80bdf0ed in VOP_WRITE_APV (vop=0xffffffff80f15480, a=0xfffffe023ae5d2b8) at vnode_if.c:999 #11 0xffffffff80b1d02e in VOP_WRITE (vp=0xfffff80077e7a000, uio=0xfffffe023ae5d378, ioflag=8323232, cred=0xfffff80004235000) at vnode_if.h:413 #12 0xffffffff80b1ce97 in vnode_pager_generic_putpages (vp=0xfffff80077e7a000, ma=0xfffffe023ae5d660, bytecount=16384, flags=1, rtvals=0xfffffe023ae5d580) at /usr/src/sys/vm/vnode_pager.c:1138 #13 0xffffffff80805a57 in vop_stdputpages (ap=0xfffffe023ae5d478) at /usr/src/sys/kern/vfs_default.c:760 #14 0xffffffff80be201e in VOP_PUTPAGES_APV (vop=0xffffffff80f00218, a=0xfffffe023ae5d478) at vnode_if.c:2861 #15 0xffffffff80b1d7e3 in VOP_PUTPAGES (vp=0xfffff80077e7a000, m=0xfffffe023ae5d660, count=16384, sync=1, rtvals=0xfffffe023ae5d580, offset=0) at vnode_if.h:1189 #16 0xffffffff80b196f3 in vnode_pager_putpages (object=0xfffff8014a1fce00, m=0xfffffe023ae5d660, count=4, flags=1, rtvals=0xfffffe023ae5d580) at /usr/src/sys/vm/vnode_pager.c:1016 #17 0xffffffff80b0a605 in vm_pager_put_pages (object=0xfffff8014a1fce00, m=0xfffffe023ae5d660, count=4, flags=1, rtvals=0xfffffe023ae5d580) at vm_pager.h:144 #18 0xffffffff80b0a18c in vm_pageout_flush (mc=0xfffffe023ae5d660, count=4, flags=1, mreq=0, prunlen=0xfffffe023ae5d6f8, eio=0xfffffe023ae5d77c) at /usr/src/sys/vm/vm_pageout.c:533 #19 0xffffffff80afec76 in vm_object_page_collect_flush ( object=0xfffff8014a1fce00, p=0xfffff8023a882370, pagerflags=1, flags=1, clearobjflags=0xfffffe023ae5d780, eio=0xfffffe023ae5d77c) at /usr/src/sys/vm/vm_object.c:971 #20 0xffffffff80afe91e in vm_object_page_clean (object=0xfffff8014a1fce00, start=0, end=0, flags=1) at /usr/src/sys/vm/vm_object.c:897 #21 0xffffffff80afe1fa in vm_object_terminate (object=0xfffff8014a1fce00) at /usr/src/sys/vm/vm_object.c:735 #22 0xffffffff80b1a0f1 in vnode_destroy_vobject (vp=0xfffff80077e7a000) at /usr/src/sys/vm/vnode_pager.c:164 #23 0xffffffff80abb191 in ufs_prepare_reclaim (vp=0xfffff80077e7a000) at /usr/src/sys/ufs/ufs/ufs_inode.c:190 #24 0xffffffff80abb1f9 in ufs_reclaim (ap=0xfffffe023ae5d968) at /usr/src/sys/ufs/ufs/ufs_inode.c:219 #25 0xffffffff80be0ade in VOP_RECLAIM_APV (vop=0xffffffff80f15ec0, a=0xfffffe023ae5d968) at vnode_if.c:2019 #26 0xffffffff80827849 in VOP_RECLAIM (vp=0xfffff80077e7a000, td=0xfffff80008931960) at vnode_if.h:830 #27 0xffffffff808219a9 in vgonel (vp=0xfffff80077e7a000) at /usr/src/sys/kern/vfs_subr.c:2943 #28 0xffffffff808294e8 in vlrureclaim (mp=0xfffff80008b2e000) at /usr/src/sys/kern/vfs_subr.c:882 #29 0xffffffff80828ea9 in vnlru_proc () at /usr/src/sys/kern/vfs_subr.c:1000 #30 0xffffffff806b66c5 in fork_exit (callout=0xffffffff80828c50 <vnlru_proc>, arg=0x0, frame=0xfffffe023ae5dc00) at /usr/src/sys/kern/kern_fork.c:1027 #31 0xffffffff80b21dce in fork_trampoline () at /usr/src/sys/amd64/amd64/exception.S:611 #32 0x0000000000000000 in ?? () This is a kernel compiled -O -g, its "almost" GENERIC; the only difference is some removed drivers, I have reproduced this on a few different kernels, including a BHYVE one so I can poke at it and not take out the main machine. The reproduction as it currently stands needs to have jails running, but I don't believe this is a jail interaction, I think its just that the process that sets up the problem happens to be running in a jail. The step is "start jail; run "find /mountpoint -xdev >/dev/null" on the filesystem, when the vnlru forces the problem vnode out the system panics. I made a few modifications to the kernel to spit out information about the buf that causes the issue, but that is it. Information about the buf in question; it has a single softdependency worklist for direct allocation: (kgdb) print *bp->b_dep->lh_first $6 = {wk_list = {le_next = 0x0, le_prev = 0xfffffe01f030e378}, wk_mp = 0xfffff80008b2e000, wk_type = 4, wk_state = 163841} The file that maps to that buffer: ls -lh MOUNTPOINT/jails/mail/var/imap/db/__db.002 -rw------- 1 cyrus cyrus 24K Jul 1 20:32 MOUNTPOINT/jails/mail/var/imap/db/__db.002 Any help is appreciated, until then I will keep banging my head against the proverbial wall on this :)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM9edeOek_zqRPt-0vDMNMK9CH31yAeVPAirWVvcuUWy5xsm4A>