Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Dec 2004 15:39:40 +0100
From:      Max Laier <max@love2party.net>
To:        freebsd-current@freebsd.org
Cc:        Robert Watson <rwatson@freebsd.org>
Subject:   Re: Protocol timer running before protocol init (Re: current panic igmp related ?)
Message-ID:  <200412071539.50647.max@love2party.net>
In-Reply-To: <200412071425.47840.max@love2party.net>
References:  <Pine.NEB.3.96L.1041207124807.99587I-100000@fledge.watson.org> <200412071425.47840.max@love2party.net>

next in thread | previous in thread | raw e-mail | index | archive | help
--nextPart1123259.71DLjs6cSq
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On Tuesday 07 December 2004 14:25, Max Laier wrote:
> On Tuesday 07 December 2004 13:50, Robert Watson wrote:
> > On Tue, 7 Dec 2004, Poul-Henning Kamp wrote:
> > > Timecounters tick every 1.000 msec
> > > panic: mtx_lock() of spin mutex (null) @ ../../../netinet/igmp.c:431
> > > cpuid =3D 0
> > > KDB: enter: panic
> > > [thread pid 37 tid 100013 ]
> > > Stopped at      kdb_enter+0x2c: leave
> > > db> trace
> > > Tracing pid 37 tid 100013 td 0xc3485480
> > > kdb_enter(c06d85e0,100,c3485480,1af,c06e0fec) at kdb_enter+0x2c
> > > panic(c06d7ac5,0,c06e0fec,1af,c0713fc4) at panic+0x17f
> > > _mtx_lock_flags(c0738740,0,c06e0fec,1af,e4c97cc8) at
> > > _mtx_lock_flags+0x82 igmp_slowtimo(e,0,e4c97cf4,c050683a,0) at
> > > igmp_slowtimo+0x19
> > > pfslowtimo(0,27,0,2,2) at pfslowtimo+0x66
> > > softclock(0,0,0,c34d07e0,0) at softclock+0x10a
> > > ithread_loop(c34cf100,e4c97d48,c34cf100,c04e9200,0) at
> > > ithread_loop+0x18e fork_exit(c04e9200,c34cf100,e4c97d48) at
> > > fork_exit+0x7e
> > > fork_trampoline() at fork_trampoline+0x8
> > > --- trap 0x1, eip =3D 0, esp =3D 0xe4c97d7c, ebp =3D 0 ---
> >
> > igmp_mtx looks to be uninitialized here (BSS memory).  This suggests th=
at
> > igmp_slowtimo is being called before igmp_init(), which strikes me as
> > somewhat odd.  There's recently been some rerrangement of the domain
> > initialization code to correct potentially related problems, but perhaps
> > things aren't quite there yet.  CC'ing Max on general principle. :-)
>
> That's not mine. Didn't touch the protosw parts ;)
>
> Still, the attached diff might help. It looks like we try to use Giant to
> protect the pfslowtimo() array walking, thus we must make sure that we ho=
ld
> Giant long enough while we set things up. I hope protosw_init() and there=
in
> called pr_init()s are fine with Giant hold. It'd surprise me, if not.

Actually, that will only help in the debug.mpsafenet=3D0 case. A better fix=
 is=20
to initialize first and hook into the array afterwards - not sure if that i=
s=20
a safe thing to do for all protocols.

=2D-=20
/"\  Best regards,                      | mlaier@freebsd.org
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mlaier@EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News

--nextPart1123259.71DLjs6cSq
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQBBtcC2XyyEoT62BG0RAhOxAJ44hE17qIurLkl723YITFGgQWtc4ACeJ5XM
yEwDoXDh3tB3mIrmIpCg67Y=
=bejD
-----END PGP SIGNATURE-----

--nextPart1123259.71DLjs6cSq--



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