From 95975647c0759f1c141c8627a2826fa8c706258d Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 22 Mar 2014 08:43:33 +0000 Subject: tests: avoid autoclose when inheriting GC will close redundantly and lead to EBADF when finalizing. This was probably harmless as the original IO objects remained marked; but do not count on it. Seeing EBADF in a MT process is a very bad sign (inadvertant information disclosure is only one race condition away). Fortunately, this bug was limited to our test suite :) --- test/server_helper.rb | 1 + test/test_server.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/test/server_helper.rb b/test/server_helper.rb index a92a2da..856ff99 100644 --- a/test/server_helper.rb +++ b/test/server_helper.rb @@ -75,6 +75,7 @@ module ServerHelper def mkserver(cfg) fork do ENV["YAHNS_FD"] = @srv.fileno.to_s + @srv.autoclose = false yield if block_given? Yahns::Server.new(cfg).start.join end diff --git a/test/test_server.rb b/test/test_server.rb index 96fc704..bd38ce3 100644 --- a/test/test_server.rb +++ b/test/test_server.rb @@ -227,6 +227,7 @@ class TestServer < Testcase pid = fork do bpipe[1].close ENV["YAHNS_FD"] = unix_srv.fileno.to_s + unix_srv.autoclose = false srv.start.join end bpipe[0].close -- cgit v1.2.3-24-ge0c7