From 53b9e1a1c1d86187ad6fbee492b697ef8be74205 Mon Sep 17 00:00:00 2001 From: Joannah Nanjekye <33177550+nanjekyejoannah@users.noreply.github.com> Date: Tue, 26 Feb 2019 19:18:23 +0300 Subject: [PATCH] bpo-36123: Fix test_socket.testWithTimeoutTriggeredSend() race condition (GH-12053) Use longer timeout for accept() in the server and block on accept in the client. The client now only sets the timeout once the socket is connected. --- Lib/test/test_socket.py | 5 +++-- .../next/Tests/2019-02-26-12-51-35.bpo-36123.QRhhRS.rst | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Tests/2019-02-26-12-51-35.bpo-36123.QRhhRS.rst diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 7c5167d8503..571f45c2b03 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -5603,7 +5603,7 @@ class SendfileUsingSendTest(ThreadedTCPSocketTest): support.unlink(support.TESTFN) def accept_conn(self): - self.serv.settimeout(self.TIMEOUT) + self.serv.settimeout(MAIN_TIMEOUT) conn, addr = self.serv.accept() conn.settimeout(self.TIMEOUT) self.addCleanup(conn.close) @@ -5788,7 +5788,8 @@ class SendfileUsingSendTest(ThreadedTCPSocketTest): def _testWithTimeoutTriggeredSend(self): address = self.serv.getsockname() with open(support.TESTFN, 'rb') as file: - with socket.create_connection(address, timeout=0.01) as sock: + with socket.create_connection(address) as sock: + sock.settimeout(0.01) meth = self.meth_from_sock(sock) self.assertRaises(socket.timeout, meth, file) diff --git a/Misc/NEWS.d/next/Tests/2019-02-26-12-51-35.bpo-36123.QRhhRS.rst b/Misc/NEWS.d/next/Tests/2019-02-26-12-51-35.bpo-36123.QRhhRS.rst new file mode 100644 index 00000000000..5a7e5bb8f43 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2019-02-26-12-51-35.bpo-36123.QRhhRS.rst @@ -0,0 +1 @@ +Fix race condition in test_socket. \ No newline at end of file