[ruby-core:60571] [ruby-trunk - Bug #9356] TCPSocket.new does not seem to handle INTR

From: normalperson@...
Date: 2014-02-08 02:40:01 UTC
List: ruby-core #60571
Issue #9356 has been updated by Eric Wong.


 Eric Wong <normalperson@yhbt.net> wrote:
 > Thanks for trying.  This is probably specific to *BSD sockets
 > implementation, so I can't reproduce it at the moment.
 
 Not happening on FreeBSD 9.x kernels, at least.  I could not reproduce
 the problem on FreeBSD 9.2 nor Debian GNU/kFreeBSD sid (x86_64).

----------------------------------------
Bug #9356: TCPSocket.new does not seem to handle INTR
https://bugs.ruby-lang.org/issues/9356#change-45020

* Author: Charlie Somerville
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin13.0]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
TCPSocket.new does not seem to handle EINTR properly.

In the attached test script, I try to open a TCP connection to my server and make an HTTP request while a background thread continually sends a signal to the process.

This causes the #write call to fail with:

x.rb:13:in `write': Socket is not connected (Errno::ENOTCONN)
	from x.rb:13:in `<main>'

This also appears to affect 2.0.0. 1.9.3 is unaffected.

---Files--------------------------------
socket-eintr.rb (207 Bytes)


-- 
http://bugs.ruby-lang.org/

In This Thread