From e03546fd4caa8e08783153933a29ccef725c4fb0 Mon Sep 17 00:00:00 2001 From: normal Date: Thu, 16 Oct 2014 00:06:09 +0000 Subject: [PATCH] test/ruby/test_process.rb: avoid killing wrong parent We must capture intended target PID before forking, since Process.ppid may change if parent dies (e.g. due to timeout) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ test/ruby/test_process.rb | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3fa1b3e973..0858492b21 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Oct 16 08:58:11 2014 Eric Wong + + * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): + avoid killing wrong parent + Thu Oct 16 08:40:04 2014 Eric Wong * cont.c (fiber_store): restore references to next_fib (fix typo) diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb index 5aad1d52fb..b314b7f38a 100644 --- a/test/ruby/test_process.rb +++ b/test/ruby/test_process.rb @@ -1925,8 +1925,9 @@ EOS begin $stderr.reopen($stdout) trap(:QUIT) {} + parent = $$ 100.times do |i| - pid = fork {Process.kill(:QUIT, Process.ppid)} + pid = fork {Process.kill(:QUIT, parent)} IO.popen(ruby, 'r+'){} Process.wait(pid) $stdout.puts