Issue #8770 has been updated by Eric Wong.


 It looks like r44687 implements a partial fix for this, but my
 proposed patch covers more cases and is more complete.
 
    * process.c (recv_child_error): Fix deadlock in rb_fork_internal when a
      signal is sent to the parent process while Ruby is forking in IO.popen.
 
     Patch by Scott Francis. Closes GH-513.

----------------------------------------
Bug #8770: [PATCH] process.c: avoid EINTR from Process.spawn
https://bugs.ruby-lang.org/issues/8770#change-44580

* Author: Eric Wong
* Status: Assigned
* Priority: Normal
* Assignee: Nobuyoshi Nakada
* Category: core
* Target version: 2.1.0
* ruby -v: ruby 2.1.0dev (2013-08-10 trunk 42491) [x86_64-linux]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
----------------------------------------
(send_child_error): retry write on EINTR
(recv_child_error): retry read on EINTR

I've been getting occasional Errno::EINTR from Process.spawn with
just the prog name in the error message.  This is probably the cause
of it, as I haven't been able to get a consistent reproduction of
the Errno::EINTR.

I've been hitting this on 2.0.0-p247, so it probably needs backport.

---Files--------------------------------
0001-process.c-avoid-EINTR-from-Process.spawn.patch (3.18 KB)


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