guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#33186] [PATCH 7/7] gnu: python-3.6: Disable congestion test.


From: Mathieu Othacehe
Subject: [bug#33186] [PATCH 7/7] gnu: python-3.6: Disable congestion test.
Date: Sun, 28 Oct 2018 21:40:43 +0900

The socket congestion test is known to hang or fail randomly. It is disabled
on python 3.6 branch upstream.

* gnu/packages/patches/python-disable-congestion-test.patch: New file.
* gnu/packages/python.scm (python-3.6)[patches]: Add the previous patch.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                  |  1 +
 .../python-disable-congestion-test.patch      | 60 +++++++++++++++++++
 gnu/packages/python.scm                       |  1 +
 3 files changed, 62 insertions(+)
 create mode 100644 gnu/packages/patches/python-disable-congestion-test.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 0828f4358..11974903d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1078,6 +1078,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/python-3-search-paths.patch             \
   %D%/packages/patches/python-3-fix-tests.patch                        \
   %D%/packages/patches/python-CVE-2018-14647.patch             \
+  %D%/packages/patches/python-disable-congestion-test.patch     \
   %D%/packages/patches/python-axolotl-AES-fix.patch            \
   %D%/packages/patches/python-cairocffi-dlopen-path.patch      \
   %D%/packages/patches/python-fix-tests.patch                  \
diff --git a/gnu/packages/patches/python-disable-congestion-test.patch 
b/gnu/packages/patches/python-disable-congestion-test.patch
new file mode 100644
index 000000000..eca2379cf
--- /dev/null
+++ b/gnu/packages/patches/python-disable-congestion-test.patch
@@ -0,0 +1,60 @@
+This patch is taken from python upstream repository:
+     https://bugs.python.org/issue34587.
+
+From 7484bdfd1e2e33fdd2c44dd4ffa044aacd495337 Mon Sep 17 00:00:00 2001
+From: Victor Stinner <address@hidden>
+Date: Mon, 17 Sep 2018 14:01:20 -0700
+Subject: [PATCH] bpo-34587, test_socket: remove RDSTest.testCongestion()
+ (GH-9277)
+
+The test tries to fill the receiver's socket buffer and expects an
+error. But the RDS protocol doesn't require that. Moreover, the Linux
+implementation of RDS expects that the producer of the messages
+reduces its rate, it's not the role of the receiver to trigger an
+error.
+
+The test fails on Fedora 28 by design, so remove it.
+---
+ Lib/test/test_socket.py                       | 27 -------------------
+ .../2018-09-13-20-58-07.bpo-34587.rCcxp3.rst  |  5 ++++
+ 2 files changed, 5 insertions(+), 27 deletions(-)
+ create mode 100644 
Misc/NEWS.d/next/Tests/2018-09-13-20-58-07.bpo-34587.rCcxp3.rst
+
+diff --git Lib/test/test_socket.py Lib/test/test_socket.py
+index 4f3c4774e4..f4d58ebf71 100644
+--- Lib/test/test_socket.py
++++ Lib/test/test_socket.py
+@@ -2054,33 +2054,6 @@ class RDSTest(ThreadedRDSSocketTest):
+         self.data = b'select'
+         self.cli.sendto(self.data, 0, (HOST, self.port))
+ 
+-    def testCongestion(self):
+-        # wait until the sender is done
+-        self.evt.wait()
+-
+-    def _testCongestion(self):
+-        # test the behavior in case of congestion
+-        self.data = b'fill'
+-        self.cli.setblocking(False)
+-        try:
+-            # try to lower the receiver's socket buffer size
+-            self.cli.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 16384)
+-        except OSError:
+-            pass
+-        with self.assertRaises(OSError) as cm:
+-            try:
+-                # fill the receiver's socket buffer
+-                while True:
+-                    self.cli.sendto(self.data, 0, (HOST, self.port))
+-            finally:
+-                # signal the receiver we're done
+-                self.evt.set()
+-        # sendto() should have failed with ENOBUFS
+-        self.assertEqual(cm.exception.errno, errno.ENOBUFS)
+-        # and we should have received a congestion notification through poll
+-        r, w, x = select.select([self.serv], [], [], 3.0)
+-        self.assertIn(self.serv, r)
+-
+ 
+ @unittest.skipIf(fcntl is None, "need fcntl")
+ @unittest.skipUnless(HAVE_SOCKET_VSOCK,
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index fbb280224..37755287c 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -377,6 +377,7 @@ data types.")
               (uri (string-append "https://www.python.org/ftp/python/";
                                   version "/Python-" version ".tar.xz"))
               (patches (search-patches
+                       "python-disable-congestion-test.patch"
                         "python-fix-tests.patch"
                         "python-3-fix-tests.patch"
                         "python-3-deterministic-build-info.patch"
-- 
2.17.1






reply via email to

[Prev in Thread] Current Thread [Next in Thread]