Christian Kratzer wrote: > Hi John, > > the box crashed again running a 10-stable kernel with following patch of > yours: > > On Wed, 7 Oct 2015, John Baldwin wrote: > > Index: smb_iod.c > > =================================================================== > > --- smb_iod.c (revision 288952) > > +++ smb_iod.c (working copy) > > @@ -624,6 +624,13 @@ > > SMB_IOD_EVUNLOCK(iod); > > } else > > free(evp, M_SMBIOD); > > + if (iod->iod_flags & SMBIOD_SHUTDOWN) { > > + if (!STAILQ_EMPTY(&iod->iod_evlist)) > > + printf("%s: shutdown with pending > > events\n", > > + __func__); > > + } > > + return; > > + } > > } > > #if 0 > > if (iod->iod_state == SMBIOD_ST_VCACTIVE) { > > Ok, I think John has found the race. As soon as smb_iod_main() does the wakeup() just before the patch (line#623), smb_iod_destroy() can go ahead and destroy the mtuexes. I think the above patch failed because the smb_iod_sendall(iod) and smb_iod_recvall(iod) need to be done before smb_iod_main() returns.
I'll email a patch for testing later to-day (I've gotta run and do something else now), rick > > here is what I got on the kvm console: > > login: panic: Assertion mtx_unowned(m) failed at > /usr/src/sys/kern/kern_mutex.c:955^M > cpuid = 1^M > KDB: stack backtrace:^M > #0 0xffffffff80975bb0 at kdb_backtrace+0x60^M > #1 0xffffffff8093baa6 at vpanic+0x126^M > #2 0xffffffff8093b979 at kassert_panic+0x139^M > #3 0xffffffff80921c47 at _mtx_destroy+0x77^M > #4 0xffffffff81a1c114 at smb_iod_destroy+0xc4^M > #5 0xffffffff81a12eea at smb_vc_free+0x1a^M > #6 0xffffffff81a13e24 at sdp_trydestroy+0xb4^M > #7 0xffffffff81a1cb36 at smbfs_unmount+0xd6^M > #8 0xffffffff809d9e84 at dounmount+0x524^M > #9 0xffffffff809d9936 at sys_unmount+0x3c6^M > #10 0xffffffff80d42235 at amd64_syscall+0x265^M > #11 0xffffffff80d25cfb at Xfast_syscall+0xfb^M > Uptime: 19h48m28s^M > Dumping 179 out of 999 > MB:..9%..18%..27%..36%..45%..54%..63%..72%..81%..98%^M > Dump complete^M > Automatic reboot in 15 seconds - press a key on the console to abort^M > > heres the crashinfo: > > panic: Assertion mtx_unowned(m) failed at > /usr/src/sys/kern/kern_mutex.c:955 > > GNU gdb 6.1.1 [FreeBSD] > Copyright 2004 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you > are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "amd64-marcel-freebsd"... > > Unread portion of the kernel message buffer: > panic: Assertion mtx_unowned(m) failed at > /usr/src/sys/kern/kern_mutex.c:955 > cpuid = 1 > KDB: stack backtrace: > #0 0xffffffff80975bb0 at kdb_backtrace+0x60 > #1 0xffffffff8093baa6 at vpanic+0x126 > #2 0xffffffff8093b979 at kassert_panic+0x139 > #3 0xffffffff80921c47 at _mtx_destroy+0x77 > #4 0xffffffff81a1c114 at smb_iod_destroy+0xc4 > #5 0xffffffff81a12eea at smb_vc_free+0x1a > #6 0xffffffff81a13e24 at sdp_trydestroy+0xb4 > #7 0xffffffff81a1cb36 at smbfs_unmount+0xd6 > #8 0xffffffff809d9e84 at dounmount+0x524 > #9 0xffffffff809d9936 at sys_unmount+0x3c6 > #10 0xffffffff80d42235 at amd64_syscall+0x265 > #11 0xffffffff80d25cfb at Xfast_syscall+0xfb > Uptime: 19h48m28s > Dumping 179 out of 999 > MB:..9%..18%..27%..36%..45%..54%..63%..72%..81%..98% > > Reading symbols from /boot/kernel/smbfs.ko.symbols...done. > Loaded symbols for /boot/kernel/smbfs.ko.symbols > Reading symbols from /boot/kernel/libiconv.ko.symbols...done. > Loaded symbols for /boot/kernel/libiconv.ko.symbols > Reading symbols from /boot/kernel/libmchain.ko.symbols...done. > Loaded symbols for /boot/kernel/libmchain.ko.symbols > #0 doadump (textdump=<value optimized out>) at pcpu.h:219 > 219 pcpu.h: No such file or directory. > in pcpu.h > (kgdb) #0 doadump (textdump=<value optimized out>) at pcpu.h:219 > #1 0xffffffff8093b5f2 in kern_reboot (howto=260) > at /usr/src/sys/kern/kern_shutdown.c:451 > #2 0xffffffff8093bae5 in vpanic (fmt=<value optimized out>, > ap=<value optimized out>) at /usr/src/sys/kern/kern_shutdown.c:758 > #3 0xffffffff8093b979 in kassert_panic (fmt=<value optimized out>) > at /usr/src/sys/kern/kern_shutdown.c:646 > #4 0xffffffff80921c47 in _mtx_destroy (c=0xfffff80009284690) > at /usr/src/sys/kern/kern_mutex.c:955 > #5 0xffffffff81a1c114 in smb_iod_destroy (iod=0xfffff80009284600) > at /usr/src/sys/modules/smbfs/../../netsmb/smb_iod.c:706 > #6 0xffffffff81a12eea in smb_vc_free (cp=0xfffff8003a602a00) > at /usr/src/sys/modules/smbfs/../../netsmb/smb_conn.c:499 > #7 0xffffffff81a13e24 in sdp_trydestroy (sdp=0xfffff8000a7cbc80) > at /usr/src/sys/modules/smbfs/../../netsmb/smb_dev.c:166 > #8 0xffffffff81a1cb36 in smbfs_unmount (mp=0xfffff80039f88330, > mntflags=<value optimized out>) > at /usr/src/sys/modules/smbfs/../../fs/smbfs/smbfs_vfsops.c:297 > #9 0xffffffff809d9e84 in dounmount (mp=0xfffff80039f88330, > flags=134217728, > td=0xfffff8000f2b0000) at /usr/src/sys/kern/vfs_mount.c:1313 > #10 0xffffffff809d9936 in sys_unmount (td=0xfffff8000f2b0000, > uap=0xfffffe003d67fb80) at /usr/src/sys/kern/vfs_mount.c:1205 > #11 0xffffffff80d42235 in amd64_syscall (td=0xfffff8000f2b0000, > traced=0) > at subr_syscall.c:134 > #12 0xffffffff80d25cfb in Xfast_syscall () > at /usr/src/sys/amd64/amd64/exception.S:396 > #13 0x000000080089190a in ?? () > Previous frame inner to this frame (corrupt stack?) > Current language: auto; currently minimal > (kgdb) > > > I have kgdb710 from ports setup in case you need me to check something. > > Greetings > Christian > > -- > Christian Kratzer CK Software GmbH > Email: c...@cksoft.de Wildberger Weg 24/2 > Phone: +49 7032 893 997 - 0 D-71126 Gaeufelden > Fax: +49 7032 893 997 - 9 HRB 245288, Amtsgericht Stuttgart > Mobile: +49 171 1947 843 Geschaeftsfuehrer: Christian Kratzer > Web: http://www.cksoft.de/ > _______________________________________________ > freebsd-stable@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-stable > To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org" > _______________________________________________ freebsd-stable@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"