Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Sep 2006 18:29:49 +0200
From:      Max Laier <max@love2party.net>
To:        John Baldwin <jhb@freebsd.org>
Cc:        cvs-src@freebsd.org, Martin Blapp <mbr@freebsd.org>, src-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/kern tty.c
Message-ID:  <200609111829.58796.max@love2party.net>
In-Reply-To: <200609111048.19397.jhb@freebsd.org>
References:  <200609101651.k8AGpuqm069774@repoman.freebsd.org> <200609111048.19397.jhb@freebsd.org>

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

On Monday 11 September 2006 16:48, John Baldwin wrote:
> On Sunday 10 September 2006 12:51, Martin Blapp wrote:
> > mbr         2006-09-10 16:51:56 UTC
> >
> >   FreeBSD src repository
> >
> >   Modified files:
> >     sys/kern             tty.c
> >   Log:
> >   Fix locking race in ttymodem(). The locking of the proctree happens
> > too late and opens a small race window before tp->t_session->s_leader
> > is accessed. In case tp->t_session has just been set to NULL
> > elsewhere, we get a panic().
> >
> >   This fix is a bandaid until someone else fixes the whole locking in
> > the tty subsystem.  Definitly more work needs to be done.
> >
> >   MFC after:      1 week
> >   Reviewed by:    mlaier
> >   PR:             kern/103101
>
> Did you ever try putting a 'mtx_assert(&Giant, MA_OWNED);' in place to
> see if Giant is held there?  Until the tty system is locked, the proper
> fix is to put Giant back on top of it, not abuse the wrong lock.=20
> Abusing the wrong lock is only going to narrow the race, not fix it.

Unless, of course, the offending call path (the one entering the tty code=20
w/o Giant) holds the "wrong lock", which - in this case - is likely as a=20
change of t_session means something was fiddling with the proctree.

Martin was trying to get you and others involved with this beforehand. =20
This commit is - as indicated in the commit message - a bandaid that=20
fixes the apparent problem.  In Martin's installation this problem=20
manifests in panic()ing every other hour - I don't think that's a system=20
state we want to ship as FreeBSD 6.2.  This is why we decided to commit=20
the bandaid now, after Martin's other requests for help and input timed=20
out.  Seems like the plan worked and people start looking at this, now ;)

=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

--nextPart386048602.HvDESxJNFe
Content-Type: application/pgp-signature

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

iD8DBQBFBY8GXyyEoT62BG0RAhibAJ4nxKYAkm4fofm8neE/vUoZdGkXfwCdGRAV
f4QmpEP8bSh953kltR4WFik=
=qUU0
-----END PGP SIGNATURE-----

--nextPart386048602.HvDESxJNFe--



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