[issue6774] socket.shutdown documentation: on some platforms, closing one half closes the other half

2012-01-29 Thread Charles-François Natali

Charles-François Natali  added the comment:

I've reverted the commit.

--
resolution:  -> rejected
stage:  -> committed/rejected
status: open -> closed
versions: +Python 3.3

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6774] socket.shutdown documentation: on some platforms, closing one half closes the other half

2012-01-29 Thread Roundup Robot

Roundup Robot  added the comment:

New changeset 9be82f458b79 by Charles-François Natali in branch 'default':
Issue #6774: Back out c8b77efe8b56, which only brings confusion.
http://hg.python.org/cpython/rev/9be82f458b79

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6774] socket.shutdown documentation: on some platforms, closing one half closes the other half

2012-01-14 Thread Charles-François Natali

Charles-François Natali  added the comment:

> This is questionable, unexpected, and should be documented.

There's already this note at the top of the socket module documentation:
"""
Note

Some behavior may be platform dependent, since calls are made to the
operating system socket APIs.
"""

There are other such subtleties with the socket API, e.g. SO_REUSEADDR
which doesn't have the same semantics on Windows. As I said earlier, I
don't think we should document every platform quirks: it will make
users worry for no reason, and as time passes, there's a chance that
the documentation doesn't match the actual behavior.
For example, this specific behavior might very well be a bug, and it's
not our responsibility to document this.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6774] socket.shutdown documentation: on some platforms, closing one half closes the other half

2012-01-12 Thread Nicolas Dumazet

Nicolas Dumazet  added the comment:

> It's the other end which decides to return ENOTCONN upon shutdown(SHUT_RD) on 
> OS X, which is questionable
> (not sure it's against the BSD socket API, since shutdown(SHUT_RD) doesn't 
> have any counterpart in the TCP layer).

Exactly. The same code raises a socket.error in one platform (mac os) and not 
on another (linux). Why not document this questionable behavior?

I'm sorry, I realize that my original patch was imprecise. I'm not an expert 
here, and I simply read 
http://svn.python.org/view/python/trunk/Lib/test/test_socket.py?r1=64125&r2=68611&pathrev=68611
 . Ok, fine -- it doesn't close the other end per se, but shutdown(SH_RD) after 
a FIN on MacOS raises a socket.error . This is questionable, unexpected, and 
should be documented.


If possible, I'd like to push for a rewording instead of a revert.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6774] socket.shutdown documentation: on some platforms, closing one half closes the other half

2012-01-12 Thread Charles-François Natali

Charles-François Natali  added the comment:

> I was scared by the note in the documentation and wondered if the
> socket Python API was completely incapable of handling half-closed
> connections cross platform.
[...]
> It makes it half-closed as it should

Indeed. Calling shutdown(SHUT_WR) doesn't close the other end (which doesn't 
make much sense), it just sends a FIN (or RST depending on the context). It's 
the other end which decides to return ENOTCONN upon shutdown(SHUT_RD) on OS X, 
which is questionable (not sure it's against the BSD socket API, since 
shutdown(SHUT_RD) doesn't have any counterpart in the TCP layer).

I also find this note confusing and scary for no good reason, and since I don't 
think we should document every OS idiosyncrasies, it would probably be better 
to revert it.

I'll leave this open for a couple days to see if anyone objects, otherwise I'll 
revert it.

--
resolution: accepted -> 
status: closed -> open

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6774] socket.shutdown documentation: on some platforms, closing one half closes the other half

2012-01-12 Thread Antoine Pitrou

Changes by Antoine Pitrou :


--
nosy: +neologix

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6774] socket.shutdown documentation: on some platforms, closing one half closes the other half

2012-01-12 Thread Mads Kiilerich

Mads Kiilerich  added the comment:

I was scared by the note in the documentation and wondered if the socket Python 
API was completely incapable of handling half-closed connections cross 
platform. pitrou helped me on IRC to track the note down to this issue.


IMO the bug report should have been rejected and the documentation patch should 
be removed. It shouldn't be that surprising that shutting something down that 
already has been shutdown (by the peer) will fail.

I don't see any indication that a "shutdown call closes the connection on the 
other half". It makes it half-closed as it should - and if it did anything else 
(which the note indicates) then it would be a big violation of BSD TCP API.

Ok, it might be slightly surprising that the next shutdown on the other end 
fails, but that is fully covered by "Note Some behavior may be platform 
dependent, since calls are made to the operating system socket APIs." It is not 
specific to Python in any way, AFAICT.

If anything it could just say something like "Note that shutdown of a socket 
that already has been shut down by the peer is platform dependent and might 
fail."

--
nosy: +kiilerix, pitrou
title: socket.shudown documentation: on some platforms, closing one half closes 
the other half -> socket.shutdown documentation: on some platforms, closing one 
half closes the other half

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com