From: nagachika00@... Date: 2014-05-10T14:31:53+00:00 Subject: [ruby-core:62504] [ruby-trunk - Bug #9751] Process.wait does not work correctly in a thread Issue #9751 has been updated by Tomoyuki Chikanaga. Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN to 2.0.0: REQUIRED, 2.1: REQUIRED ---------------------------------------- Bug #9751: Process.wait does not work correctly in a thread https://bugs.ruby-lang.org/issues/9751#change-46665 * Author: Sam Saffron * Status: Closed * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: 1.9, 2.0, 2.1, 2.2 * Backport: 2.0.0: REQUIRED, 2.1: REQUIRED ---------------------------------------- The following code fails under Ruby 1.9+, used to work on 1.8 with green threads ``` def test if pid = fork puts "child pid is #{pid} waiting ..." begin Process.wait(pid) puts "child exited" rescue => e p e end else sleep 3 puts "exiting child" exit 0 end end # this works as expected test puts "testing in thread" # this will hang Thread.new do test end.join ``` Additionally on SIGINT I am seeing a zombie + [BUG] pthread_mutex_lock: Invalid argument (EINVAL) -- https://bugs.ruby-lang.org/