diff options
author | Jeremy Evans <code@jeremyevans.net> | 2019-08-08 15:44:26 -0700 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2019-10-16 12:51:13 -0700 |
commit | 567e312d1f56c27ecb4fa20deac4311f05ee5507 (patch) | |
tree | ce646365886656ec13ec4e6ffc0f2d57f5dc9f91 /test | |
parent | 50b8033d6b7404670ee985de1473fffc10dd7d9c (diff) | |
download | ruby-567e312d1f56c27ecb4fa20deac4311f05ee5507.tar.gz |
Do not raise an exception on a closed DRb socket
This rescues some exceptions that could happen with a closed or
shutdown DRb socket. This can prevent the server from
exiting if an client socket is closed directly after it is
accepted.
Fixes [Bug #8039]
Diffstat (limited to 'test')
-rw-r--r-- | test/drb/test_drb.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/drb/test_drb.rb b/test/drb/test_drb.rb index 4e8f5cb0ec..b4399573aa 100644 --- a/test/drb/test_drb.rb +++ b/test/drb/test_drb.rb @@ -327,4 +327,19 @@ class TestBug4409 < Test::Unit::TestCase end end +class TestDRbTCP < Test::Unit::TestCase + def test_immediate_close + server = DRb::DRbServer.new('druby://:0') + host, port, = DRb::DRbTCPSocket.send(:parse_uri, server.uri) + socket = TCPSocket.open host, port + socket.shutdown + socket.close + client = DRb::DRbTCPSocket.new(server.uri, socket) + assert client + client.close + server.stop_service + server.thread.join + end +end + end |