summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-16 00:06:09 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-16 00:06:09 +0000
commite03546fd4caa8e08783153933a29ccef725c4fb0 (patch)
tree2c2ea2fb91a851fac53adee5f9ec1f43a34cbd4c
parentd910af94d51727e94e547ad4588876f9a741cf6b (diff)
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
-rw-r--r--ChangeLog5
-rw-r--r--test/ruby/test_process.rb3
2 files changed, 7 insertions, 1 deletions
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 <e@80x24.org>
+
+ * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
+ avoid killing wrong parent
+
Thu Oct 16 08:40:04 2014 Eric Wong <e@80x24.org>
* 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