Date: Mon, 17 May 2010 22:05:25 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Yoshihiko Sarumaru <ysarumaru@gmail.com> Cc: freebsd-net@freebsd.org, freebsd-stable@freebsd.org Subject: Re: odd behavior on select() after shutdown() Message-ID: <20100517190525.GP83316@deviant.kiev.zoral.com.ua> In-Reply-To: <AANLkTilQexT6ZobWYe2MuPcsD5RnTsx3SL0Zru_01Q9C@mail.gmail.com> References: <AANLkTilQexT6ZobWYe2MuPcsD5RnTsx3SL0Zru_01Q9C@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--WU1McKeqU8MHoLZD Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, May 18, 2010 at 01:08:50AM +0900, Yoshihiko Sarumaru wrote: > Hi all, >=20 > Select(2) has three arguments to get socket status for read, write and ex= cept. > After upgrading to 8.0-RELEASE, select() after shutdown(SHUT_WR) returns = with > the status exceptfds is set. It means out-of-bound data can be read > from the socket, > but recv() with OOB flag returns ECONNRESET, and no packets with urgent f= lag > was observed by tcpdump. > It seems strange for me, but is it an intentional change on 8.x ? >=20 > This behavior breaks net/stone on 8.0-RELEASE. > http://www.freebsd.org/cgi/query-pr.cgi?pr=3Dports/141103 > The continuous recv() error on PR might lead by incorrectly setted > exceptfds on every recv() > and it should be fixed, but it doesn't matter if above behavior of > select() doesn't occur. The patch below would fix the problem at hand. I am wondering what unintended consequences it might have. diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index eaefd9c..293dbb1 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -996,7 +996,7 @@ done: static int select_flags[3] =3D { POLLRDNORM | POLLHUP | POLLERR, POLLWRNORM | POLLHUP | POLLERR, - POLLRDBAND | POLLHUP | POLLERR + POLLRDBAND | POLLERR }; =20 /* --WU1McKeqU8MHoLZD Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkvxk3UACgkQC3+MBN1Mb4jAjACcC4GG1mQAc0P/VILhbTLePh8S XGUAoI7HPzC9LT1HfFRbLExOfjvWm9Rz =wZ1x -----END PGP SIGNATURE----- --WU1McKeqU8MHoLZD--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100517190525.GP83316>