diff options
author | Eric Wong <bofh@yhbt.net> | 2021-03-12 22:08:46 -0400 |
---|---|---|
committer | Eric Wong <bofh@yhbt.net> | 2021-03-13 02:09:02 +0000 |
commit | 89b4ea15506ada542ab218c6819cf236e0afb2a2 (patch) | |
tree | 62fd8053b45d2ff4810b7084924acec408faf107 | |
parent | c95f184defc61cb9746f4efa1943ad6d755b95c1 (diff) | |
download | unicorn-89b4ea15506ada542ab218c6819cf236e0afb2a2.tar.gz |
We don't want at_exit firing in child processes and never wanted it. This is apparently a long standing bug in the tests that only started causing test_worker_dies_on_dead_master failures for me. I assume it's only showing up now for me due to kernel scheduler changes, since I've been using the same 4-core CPU for ~11 years, now.
-rw-r--r-- | test/test_helper.rb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/test/test_helper.rb b/test/test_helper.rb index 974d2f2..ba5ef16 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -42,6 +42,7 @@ end def redirect_test_io orig_err = STDERR.dup orig_out = STDOUT.dup + rdr_pid = $$ new_out = File.open("test_stdout.#$$.log", "a") new_err = File.open("test_stderr.#$$.log", "a") new_out.sync = new_err.sync = true @@ -59,8 +60,10 @@ def redirect_test_io STDERR.sync = STDOUT.sync = true at_exit do - File.unlink(new_out.path) rescue nil - File.unlink(new_err.path) rescue nil + if rdr_pid == $$ + File.unlink(new_out.path) rescue nil + File.unlink(new_err.path) rescue nil + end end begin |