--hMG3mwLWsaCgkvvK
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Mar 02, 2008 at 11:53:34AM -0800, John-Mark Gurney wrote:
> Kostik Belousov wrote this message on Sun, Mar 02, 2008 at 17:25 +0200:
> > The panic below was already reported, but now I got it on my desktop
> > and was able to investigate further.
> >=20
> > #5 0xc06daf36 in trap (frame=3D0xe8093b1c)
> > at /usr/bsd/src/sys/i386/i386/trap.c:490
> > #6 0xc06c0b4b in calltrap () at /usr/bsd/src/sys/i386/i386/exception.s=

:139
> > #7 0xc0493968 in knlist_cleardel (knl=3D0xcabec128, td=3D0x0, islocked=

=3D1,=20
> > killkn=3D0) at atomic.h:149
> > #8 0xc04f520c in pipeclose (cpipe=3D0xcabec0b8)
> > at /usr/bsd/src/sys/kern/sys_pipe.c:1508
> > #9 0xc04f5320 in pipe_close (fp=3D0xc5ce8630, td=3D0xcac01aa0)
> > at /usr/bsd/src/sys/kern/sys_pipe.c:1425
> > #10 0xc0489442 in fdrop (fp=3D0xc5ce8630, td=3D0xcac01aa0) at file.h:297
> > #11 0xc048accf in closef (fp=3D0xc5ce8630, td=3D0xcac01aa0)
> > at /usr/bsd/src/sys/kern/kern_descrip.c:1958
> > #12 0xc048b1ff in kern_close (td=3D0xcac01aa0, fd=3D10)
> > at /usr/bsd/src/sys/kern/kern_descrip.c:1054
> > #13 0xc048b2da in close (td=3D0xcac01aa0, uap=3D0xe8093cfc)
> > at /usr/bsd/src/sys/kern/kern_descrip.c:1006
> > ---Type to continue, or q to quit---
> > #14 0xc06da865 in syscall (frame=3D0xe8093d38)
> > at /usr/bsd/src/sys/i386/i386/trap.c:1035
> > #15 0xc06c0bb0 in Xint0x80_syscall ()
> > at /usr/bsd/src/sys/i386/i386/exception.s:196
> >=20
> > At the frame 8, we have
> > (kgdb) p/x *(knl->kl_list->slh_first)
> > $9 =3D {kn_link =3D {sle_next =3D 0x0}, kn_selnext =3D {sle_next =3D 0x=

0},
> > kn_knlist =3D 0x0, kn_tqe =3D {tqe_next =3D 0xc58de484, tqe_prev =3D =

0xc5e9ab20},
> > kn_kq =3D 0x0, kn_kevent =3D {ident =3D 0x0, filter =3D 0x0, flags =

=3D 0x0,
> > fflags =3D 0x0, data =3D 0x0, udata =3D 0x0}, kn_status =3D 0x20,
> > kn_sfflags =3D 0x0, kn_sdata =3D 0x0, kn_ptr =3D {p_fp =3D 0x0, p_pro=

c =3D 0x0,
> > p_aio =3D 0x0, p_lio =3D 0x0}, kn_fop =3D 0x0, kn_hook =3D 0x0}
> >=20
> > The knote is KN_MARKER, and the kn_kq is NULL. The result is that KQ_LO=

CK
> > in the knlist_cleardel()::SLIST_FOREACH_SAFE() loop dereferences NULL a=

nd
> > panics.
> >=20
> > Does the following change makes any sense?

>=20
> I thought this was a bug, but upon further examination, there is
> something wrong... a KN_MARKER knote should never be on the knlist..
> It is only ever added to kq's even list, never to an object's list...
>=20
> If you could walk the knl->kl_list through kn_selnext, and ensure
> that the kn w/ kN_MARKER exists would be good... It should be
> last one as kn_selnext is NULL...


As I shown above, the KN_MARKER was found on the cpipe->pipe_sel.si_note,

(kgdb) p cpipe->pipe_sel.si_note
$1 =3D {kl_list =3D {slh_first =3D 0xc58df330},=20
kl_lock =3D 0xc0493a20 ,=20
kl_unlock =3D 0xc0493370 ,=20
kl_locked =3D 0xc0493350 , kl_lockarg =3D 0xcabec170
}

(kgdb) p/x (knl->kl_list->slh_first)
$2 =3D 0xc58df330

(kgdb) p/x *(knl->kl_list->slh_first)
$3 =3D {kn_link =3D {sle_next =3D 0x0}, kn_selnext =3D {sle_next =3D 0x0},=
=20
kn_knlist =3D 0x0, kn_tqe =3D {tqe_next =3D 0xc58de484, tqe_prev =3D 0xc5=
e9ab20},=20
kn_kq =3D 0x0, kn_kevent =3D {ident =3D 0x0, filter =3D 0x0, flags =3D 0x=
0,=20
fflags =3D 0x0, data =3D 0x0, udata =3D 0x0}, kn_status =3D 0x20,=20
kn_sfflags =3D 0x0, kn_sdata =3D 0x0, kn_ptr =3D {p_fp =3D 0x0, p_proc =
=3D 0x0,=20
p_aio =3D 0x0, p_lio =3D 0x0}, kn_fop =3D 0x0, kn_hook =3D 0x0}
>=20
> I can't think of a way that this can happen, as the only way to get
> on the knlist is by calling knlist_add, and it should only ever be
> called from f_attach, which is called in one place, and has to have
> kn_kq set properly... Are there any custom patches on the system?


This is the stock RELENG_7 as of today.

--hMG3mwLWsaCgkvvK
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iEYEARECAAYFAkfLCNcACgkQC3+MBN1Mb4g2FwCgikWbgwT1Lv gAGt3kEiZxtgqq
2TgAoPXUgoqBtJJUeEU3MJy2+Yw83Wdh
=+G2X
-----END PGP SIGNATURE-----

--hMG3mwLWsaCgkvvK--