Date: Wed, 10 Mar 2010 21:04:10 +0100 From: Ed Schouten <ed@80386.nl> To: Alfred Perlstein <alfred@freebsd.org> Cc: FreeBSD Hackers <hackers@freebsd.org> Subject: Re: tty or script(1) weirdness? Message-ID: <20100310200410.GG8200@hoeg.nl> In-Reply-To: <20100310184152.GF8200@hoeg.nl> References: <20100310093001.GL22317@elvis.mu.org> <20100310184152.GF8200@hoeg.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
--+n6TW4Th6de8VKLL Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * Ed Schouten <ed@80386.nl> wrote: > Hmmm... It seems this is a TTY bug. When you close a TTY, the final > close() call should get stuck until all data is actually drained. This > doesn't seem to happen properly. Some further research: it's not a TTY bug, but a bug in script(1). The script parent process leaves a file descriptor open, which means output is never properly drained. I can't reproduce this issue after applying this patch: %%% Index: script.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- script.c (revision 204965) +++ script.c (working copy) @@ -158,6 +158,8 @@ } if (child =3D=3D 0) doshell(argv); + else + close(slave); =20 if (flushtime > 0) tvp =3D &tv; %%% --=20 Ed Schouten <ed@80386.nl> WWW: http://80386.nl/ --+n6TW4Th6de8VKLL Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkuX+zoACgkQ52SDGA2eCwVbYwCfUTBou5Vzo+E4KNt9YHYiNACh OJAAniGffxBvByrof+uLZhqp+Pix6Bzg =9+gw -----END PGP SIGNATURE----- --+n6TW4Th6de8VKLL--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100310200410.GG8200>