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

Message ID 20181028124043.21773-8-m.othacehe@gmail.com
State Accepted
Headers show
Series Preliminary installer work | expand

Checks

Context Check Description
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied

Commit Message

Mathieu Othacehe Oct. 28, 2018, 12:40 p.m. UTC
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

Comments

Ludovic Courtès Nov. 6, 2018, 3:43 p.m. UTC | #1
Mathieu Othacehe <m.othacehe@gmail.com> skribis:

> 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.

Does this have anything to do with https://issues.guix.info/issue/33248
and https://issues.guix.info/issue/33213 and related issues?

If so please add a “Fixes” tag and close all these bugs.  :-)

Now, in which branch should it go?  Would be nice in ‘core-updates’, but
it would again delay merging that branch.  What do people think?
Marius?  Gábor?

Ludo’.
Marius Bakke Nov. 6, 2018, 3:59 p.m. UTC | #2
ludo@gnu.org (Ludovic Courtès) writes:

> Mathieu Othacehe <m.othacehe@gmail.com> skribis:
>
>> 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.
>
> Does this have anything to do with https://issues.guix.info/issue/33248
> and https://issues.guix.info/issue/33213 and related issues?
>
> If so please add a “Fixes” tag and close all these bugs.  :-)
>
> Now, in which branch should it go?  Would be nice in ‘core-updates’, but
> it would again delay merging that branch.  What do people think?
> Marius?  Gábor?

The faulty test is already removed on 'core-updates' (albeit more
heavy-handedly).  So I don't think there's anything to do here.
Gábor Boskovits Nov. 6, 2018, 4:29 p.m. UTC | #3
2018. nov. 6., K 16:59 dátummal Marius Bakke <mbakke@fastmail.com> ezt írta:

> ludo@gnu.org (Ludovic Courtès) writes:
>
> > Mathieu Othacehe <m.othacehe@gmail.com> skribis:
> >
> >> 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.
> >
> > Does this have anything to do with https://issues.guix.info/issue/33248
> > and https://issues.guix.info/issue/33213 and related issues?
> >
> > If so please add a “Fixes” tag and close all these bugs.  :-)
> >
> > Now, in which branch should it go?  Would be nice in ‘core-updates’, but
> > it would again delay merging that branch.  What do people think?
> > Marius?  Gábor?
>
> The faulty test is already removed on 'core-updates' (albeit more
> heavy-handedly).  So I don't think there's anything to do here.
>

Ok, I agree.

>
Ludovic Courtès Nov. 27, 2018, 10:27 a.m. UTC | #4
Hello,

Marius Bakke <mbakke@fastmail.com> skribis:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Mathieu Othacehe <m.othacehe@gmail.com> skribis:
>>
>>> 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.
>>
>> Does this have anything to do with https://issues.guix.info/issue/33248
>> and https://issues.guix.info/issue/33213 and related issues?
>>
>> If so please add a “Fixes” tag and close all these bugs.  :-)
>>
>> Now, in which branch should it go?  Would be nice in ‘core-updates’, but
>> it would again delay merging that branch.  What do people think?
>> Marius?  Gábor?
>
> The faulty test is already removed on 'core-updates' (albeit more
> heavy-handedly).  So I don't think there's anything to do here.

So Mathieu, I’m closing this issue.

  https://issues.guix.info/issue/33186

Thanks,
Ludo’.

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 <vstinner@redhat.com>
+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"