Skip to content

Commit 366654e

Browse files
authored
Merge pull request #60 from hanazuki/fd-leak
test_dns: Fix FD leak
2 parents c152f38 + 236c38b commit 366654e

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

test/resolv/test_dns.rb

+7-2
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,10 @@ def test_multiple_servers_with_timeout_and_truncated_tcp_fallback
758758
u1.send(msg[0...512], 0, client_address, client_port)
759759
end
760760

761-
tcp_server1_thread = Thread.new { t1.accept; t1.close }
761+
tcp_server1_thread = Thread.new do
762+
# Keep this socket open so that the client experiences a timeout
763+
t1.accept
764+
end
762765

763766
tcp_server2_thread = Thread.new do
764767
ct = t2.accept
@@ -800,7 +803,7 @@ def test_multiple_servers_with_timeout_and_truncated_tcp_fallback
800803
ct.send(msg, 0)
801804
ct.close
802805
end
803-
result, = assert_join_threads([client_thread, udp_server1_thread, tcp_server1_thread, tcp_server2_thread])
806+
result, _, tcp_server1_socket, = assert_join_threads([client_thread, udp_server1_thread, tcp_server1_thread, tcp_server2_thread])
804807
assert_instance_of(Array, result)
805808
assert_equal(50, result.length)
806809
result.each_with_index do |rr, i|
@@ -809,6 +812,8 @@ def test_multiple_servers_with_timeout_and_truncated_tcp_fallback
809812
assert_equal("192.0.2.#{i}", rr.address.to_s)
810813
assert_equal(3600, rr.ttl)
811814
end
815+
ensure
816+
tcp_server1_socket&.close
812817
end
813818
end
814819
end

0 commit comments

Comments
 (0)