From: shugo@... Date: 2014-02-21T14:59:51+00:00 Subject: [ruby-core:60947] [ruby-trunk - Bug #9547] [Closed] TCPSocket.new causes an infinite loop when interrupted by a signal 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/