[issue9950] socket.sendall() crash when receiving a signal

2010-09-28 Thread Ned Deily
Changes by Ned Deily : Removed file: http://bugs.python.org/file19042/unnamed ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscr

[issue9950] socket.sendall() crash when receiving a signal

2010-09-27 Thread Gregory P. Smith
Gregory P. Smith added the comment: thanks Antoine! -- Added file: http://bugs.python.org/file19042/unnamed ___ Python tracker ___thanks Antoine!

[issue9950] socket.sendall() crash when receiving a signal

2010-09-27 Thread Antoine Pitrou
Antoine Pitrou added the comment: The patch passes at least on Linux, OS X and Solaris buildbots. Backported to 3.1 (r85034) and 2.7 (r85035). -- status: open -> closed ___ Python tracker _

[issue9950] socket.sendall() crash when receiving a signal

2010-09-27 Thread Antoine Pitrou
Antoine Pitrou added the comment: Patch committed in r85032. I'm gonna watch the buildbots a bit, in case the test fails on some platforms. -- assignee: -> pitrou resolution: -> fixed stage: -> committed/rejected ___ Python tracker

[issue9950] socket.sendall() crash when receiving a signal

2010-09-25 Thread Antoine Pitrou
Antoine Pitrou added the comment: Here is a patch fixing the aforementioned issues, and with tests. -- keywords: +patch nosy: +exarkun Added file: http://bugs.python.org/file19015/sendallinterrupt.patch ___ Python tracker

[issue9950] socket.sendall() crash when receiving a signal

2010-09-25 Thread Antoine Pitrou
Antoine Pitrou added the comment: Oh, and an additional bug is that send() can return a successful partial write when it was actually interrupted by a signal. -- ___ Python tracker

[issue9950] socket.sendall() crash when receiving a signal

2010-09-25 Thread Antoine Pitrou
Antoine Pitrou added the comment: Actually, the patch is enough to suppress the crash, but sendall() behaviour is buggy in another way: EINTR may be received as part of the select() call (on sockets with a timeout), in which case the loop will be exited early instead of retrying, losing track

[issue9950] socket.sendall() crash when receiving a signal

2010-09-25 Thread Antoine Pitrou
Antoine Pitrou added the comment: The fix is very simple, but perhaps a test should be added. diff -r af0d7b32d6ce Modules/socketmodule.c --- a/Modules/socketmodule.cFri Sep 24 20:03:12 2010 +0200 +++ b/Modules/socketmodule.cSat Sep 25 21:09:58 2010 +0200 @@ -2581,8 +2581,8 @@ sock_send

[issue9950] socket.sendall() crash when receiving a signal

2010-09-25 Thread Antoine Pitrou
New submission from Antoine Pitrou : This was introduced by r74426 which addressed issue1628205. socket.sendall() calls PyErr_CheckSignals() (and potentially returns to the caller) without having the GIL. >>> import socket >>> c, s = socket.socketpair() >>> s.sendall(b"x"*(100 * 1024**2)) ^C^C