odd behavior on select() after shutdown()

Kostik Belousov kostikbel at gmail.com
Tue May 18 08:40:41 UTC 2010


On Tue, May 18, 2010 at 12:58:05PM +0900, Yoshihiko Sarumaru wrote:
> Hi,
> 
> 2010/5/18 Kostik Belousov <kostikbel at gmail.com>:
> > On Tue, May 18, 2010 at 01:08:50AM +0900, Yoshihiko Sarumaru wrote:
> >> Hi all,
> >>
> >> Select(2) has three arguments to get socket status for read, write and except.
> >> 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 flag
> >> was observed by tcpdump.
> >> It seems strange for me, but is it an intentional change on 8.x ?
> 
> > The patch below would fix the problem at hand. I am wondering what
> > unintended consequences it might have.
> 
> It works perfect for me on 8.0-RELEASE, thanks!
> I can't see how much this change has side effects,
> but is it commitable to current or stable?
> 
> Kib, it seems you had changed some code using POLLHUP in uipc_socket.c.
> I'm not sure it is related to this issue, but could you give us your comments?

Sometimes being kib, I have no further comments, except that I think that
the behaviour you reported is consequence of Jeff and my changes.

I intend to commit the patch tomorrow if nobody speaks up. We will see
how it goes.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-net/attachments/20100518/5bc37064/attachment.pgp


More information about the freebsd-net mailing list