Issue #9547 has been updated by Shugo Maeda.

Status changed from Open to Closed
% Done changed from 0 to 100

Applied in changeset r45084.

----------
* ext/socket/init.c (wait_connectable): break if the socket is
  writable to avoid infinite loops on FreeBSD and other platforms
  which conforms to SUSv3.  This problem cannot be reproduced with
  loopback interfaces, so it's hard to write test code.
  rsock_connect() and wait_connectable() are overly complicated, so
  they should be refactored, but I commit this fix as a workaround
  for the release of Ruby 1.9.3 scheduled on Feb 24.
  [ruby-core:60940] [Bug #9547]

----------------------------------------
Bug #9547: TCPSocket.new causes an infinite loop when interrupted by a signal
https://bugs.ruby-lang.org/issues/9547#change-45347

* Author: Shugo Maeda
* Status: Closed
* Priority: Normal
* Assignee: 
* Category: ext
* Target version: current: 2.2.0
* ruby -v: ruby 2.2.0dev (2014-02-21 trunk 45076) [x86_64-freebsd10.0]
* Backport: 1.9.3: REQUIRED, 2.0.0: REQUIRED, 2.1: REQUIRED
----------------------------------------
The script attached in #9356 goes in an infinite loop on FreeBSD (and other platforms conforming to SUSv3).
Naruse-san asked me to create a separate ticket for backporting.

This bug seems to have been introduced by r31424.




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