Date: Sun, 13 Jan 2002 18:22:47 -0800 From: Alfred Perlstein <alfred@FreeBSD.org> To: Peter Wemm <peter@wemm.org> Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/netgraph ng_socket.c src/sys/alpha/osf1 osf1_misc.c src/sys/compat/linux linux_file.c linux_ioctl.c linux_stats.c src/sys/compat/svr4 svr4_fcntl.c svr4_filio.c svr4_ioctl.c svr4_stream.c src/sys/dev/aac aac.c src/sys/dev/tdfx ... Message-ID: <20020113182247.A7984@elvis.mu.org> In-Reply-To: <20020114020445.72A28380D@overcee.wemm.org>; from peter@wemm.org on Sun, Jan 13, 2002 at 06:04:45PM -0800 References: <200201140013.g0E0Dje20784@freefall.freebsd.org> <20020114020445.72A28380D@overcee.wemm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
* Peter Wemm <peter@wemm.org> [020113 18:04] wrote:
> Alfred Perlstein wrote:
> > alfred 2002/01/13 16:13:45 PST
> > Log:
> > Replace ffind_* with fget calls.
> >
> > Make fget MPsafe.
> >
> > Make fgetvp and fgetsock use the fget subsystem to reduce code bloat.
> >
> > Push giant down in fpathconf().
>
> Still no joy:
> #12 0xc01f0c57 in panic (fmt=0xc0302ac0 "mutex %s %p already initialized")
> at ../../../kern/kern_shutdown.c:634
> #13 0xc01eab5b in mtx_init (m=0xd9c9bb90,
> description=0xc02fd5ae "struct file", opts=0)
> at ../../../kern/kern_mutex.c:643
> #14 0xc01c215b in fifo_ioctl (ap=0xd9c9bbec)
> at ../../../fs/fifofs/fifo_vnops.c:352
> #15 0xc01c1cc5 in fifo_vnoperate (ap=0xd9c9bbec)
> at ../../../fs/fifofs/fifo_vnops.c:135
> #16 0xc0287e91 in ufs_vnoperatefifo (ap=0xd9c9bbec)
> at ../../../ufs/ufs/ufs_vnops.c:2667
> #17 0xc0232f23 in vn_ioctl (fp=0xc23a6080, com=2147772029, data=0xd9c9bcb0 "",
> td=0xd9c8b904) at vnode_if.h:357
> #18 0xc01dba53 in fcntl (td=0xd9c8b904, uap=0xd9c9bd20)
> at ../../../sys/file.h:200
> #19 0xc02c542f in syscall (frame={tf_fs = 47, tf_es = 47, tf_ds = 47,
> tf_edi = 1, tf_esi = 12, tf_ebp = -1077937476, tf_isp = -641090188,
> tf_ebx = 6, tf_edx = 0, tf_ecx = 0, tf_eax = 92, tf_trapno = 12,
> tf_err = 2, tf_eip = 672002292, tf_cs = 31, tf_eflags = 518,
> tf_esp = -1077937520, tf_ss = 47}) at ../../../i386/i386/trap.c:1034
>
> At frame 18:
> (kgdb) p td->td_proc->p_comm
> $3 = "master\000\000\000er\000\000\000\000\000\000\000\000"
>
> This is a postfix process. Postfix has been the victim of my last three
> panics (all fifo related, either select or fcntl).
Invariants wants me to bzero the mutex before initializing it otherwise
it freaks out because it sees what _looks_ like an already initialized
mutex...
lame...
Rev 1.61 should fix it for you:
don't initialize the mutex in the temporary struct file, the soo_*
functions just grab f_data and don't muck with anything else so this
should be ok.
this fixes a panic with invariants where it thinks we've doubly initialized
the filetmp mutex even though all we've done is neglect to bzero it.
--
-Alfred Perlstein [alfred@freebsd.org]
'Instead of asking why a piece of software is using "1970s technology,"
start asking why software is ignoring 30 years of accumulated wisdom.'
Tax deductable donations for FreeBSD: http://www.freebsdfoundation.org/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020113182247.A7984>
