[Python-checkins] bpo-36123: Fix test_socket.testWithTimeoutTriggeredSend() race condition (GH-12053)

Miss Islington (bot) webhook-mailer at python.org
Tue Feb 26 11:48:55 EST 2019


https://github.com/python/cpython/commit/2632474957fa9c6311af21be6906d1234853f288
commit: 2632474957fa9c6311af21be6906d1234853f288
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2019-02-26T08:48:52-08:00
summary:

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.
(cherry picked from commit 53b9e1a1c1d86187ad6fbee492b697ef8be74205)

Co-authored-by: Joannah Nanjekye <33177550+nanjekyejoannah at users.noreply.github.com>

files:
A Misc/NEWS.d/next/Tests/2019-02-26-12-51-35.bpo-36123.QRhhRS.rst
M Lib/test/test_socket.py

diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 82b89fcbafa6..381965289615 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -5533,7 +5533,7 @@ def tearDownClass(cls):
         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)
@@ -5718,7 +5718,8 @@ def testWithTimeout(self):
     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 000000000000..5a7e5bb8f43c
--- /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



More information about the Python-checkins mailing list