From: nagachika00@... Date: 2015-11-28T18:30:17+00:00 Subject: [ruby-core:71724] [Ruby trunk - Bug #11613] test_aspawn_too_long_path creates too many processes Issue #11613 has been updated by Tomoyuki Chikanaga. Backport changed from 2.0.0: REQUIRED, 2.1: DONE, 2.2: REQUIRED to 2.0.0: REQUIRED, 2.1: DONE, 2.2: DONE Backporrted r52222,r52229,r52273,r52277,r52357 into `ruby_2_2` branch at r52779. ---------------------------------------- Bug #11613: test_aspawn_too_long_path creates too many processes https://bugs.ruby-lang.org/issues/11613#change-55130 * Author: Yui NARUSE * Status: Closed * Priority: Normal * Assignee: * ruby -v: * Backport: 2.0.0: REQUIRED, 2.1: DONE, 2.2: DONE ---------------------------------------- At least on FreeBSD, spawn("echo|echo|echo|echo|echo|echo|echo| ...20000 times") success and create 20000 zombie processes. To prevent this you can add rlimit_nproc: 1 because it tests sh itself, don't test spawned echos. ```diff diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb index 32dcaed..7877171 100644 --- a/test/ruby/test_process.rb +++ b/test/ruby/test_process.rb @@ -1600,7 +1600,7 @@ class TestProcess < Test::Unit::TestCase assert_raise(*exs, mesg) do begin loop do - Process.spawn(cmds.join(sep), [STDOUT, STDERR]=>File::NULL) + Process.spawn(cmds.join(sep), [STDOUT, STDERR]=>File::NULL, rlimit_nproc: 1) min = [cmds.size, min].max cmds *= 100 end ``` -- https://bugs.ruby-lang.org/