RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1639531 - test_ssl fails on ppc64le
Summary: test_ssl fails on ppc64le
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: python3
Version: 8.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: 8.0
Assignee: Python Maintainers
QA Contact: Lukáš Zachar
URL:
Whiteboard:
: 1644304 (view as bug list)
Depends On: 1679646
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-10-16 01:31 UTC by Charalampos Stratakis
Modified: 2020-11-14 16:07 UTC (History)
5 users (show)

Fixed In Version: python3-3.6.8-2.el8
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-11-05 22:03:43 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2019:3520 0 None None None 2019-11-05 22:03:58 UTC

Description Charalampos Stratakis 2018-10-16 01:31:54 UTC
One test case from test_ssl fails in brew on ppc64le:

ERROR: test_connect_cadata (test.test_ssl.SimpleBackgroundTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/Python-3.6.6/Lib/test/test_ssl.py", line 1628, in test_connect_cadata
    s.connect(self.server_addr)
  File "/builddir/build/BUILD/Python-3.6.6/Lib/ssl.py", line 1065, in connect
    self._real_connect(addr, False)
  File "/builddir/build/BUILD/Python-3.6.6/Lib/ssl.py", line 1052, in _real_connect
    socket.connect(self, addr)
ConnectionRefusedError: [Errno 111] Connection refused
----------------------------------------------------------------------

Comment 1 Charalampos Stratakis 2018-10-17 10:04:31 UTC
The same failure is observed sporadically at the s390x arch

Comment 2 Petr Viktorin (pviktori) 2018-11-01 15:08:14 UTC
*** Bug 1644304 has been marked as a duplicate of this bug. ***

Comment 3 Victor Stinner 2019-01-18 16:16:13 UTC
I can reproduce the issue in the 3.6 development branch of Python upstream:

$ ./python -m test -u all -F -m test_connect_cadata  test_ssl 
Run tests sequentially
0:00:00 load avg: 0.65 [  1] test_ssl
0:00:00 load avg: 0.65 [  2] test_ssl
test test_ssl failed -- Traceback (most recent call last):
  File "/home/vstinner/prog/python/3.6/Lib/test/test_ssl.py", line 1642, in test_connect_cadata
    s.connect(self.server_addr)
  File "/home/vstinner/prog/python/3.6/Lib/ssl.py", line 1109, in connect
    self._real_connect(addr, False)
  File "/home/vstinner/prog/python/3.6/Lib/ssl.py", line 1100, in _real_connect
    self.do_handshake()
  File "/home/vstinner/prog/python/3.6/Lib/ssl.py", line 1077, in do_handshake
    self._sslobj.do_handshake()
  File "/home/vstinner/prog/python/3.6/Lib/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
ConnectionResetError: [Errno 104] Connection reset by peer

test_ssl failed

== Tests result: FAILURE ==

1 test OK.

1 test failed:
    test_ssl

Total duration: 191 ms
Tests result: FAILURE


The test fails randomly.

The test is reliable in the 3.7 and master development branches of Python upstream. I identified that the commit 529525fb5a8fd9b96ab4021311a598c77588b918 of https://bugs.python.org/issue33618 added the following code to test_ssl which prevents the failure (diff adapted to the 3.6 branch):


diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 0aeabc10f2..72b7a94a21 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -2029,6 +2029,16 @@ if _have_threads:
                                 sys.stdout.write(" server: read %r (%s), sending back %r (%s)...\n"
                                                  % (msg, ctype, msg.lower(), ctype))
                             self.write(msg.lower())
+                    except ConnectionResetError:
+                        # XXX: OpenSSL 1.1.1 sometimes raises ConnectionResetError
+                        # when connection is not shut down gracefully.
+                        if self.server.chatty and support.verbose:
+                            sys.stdout.write(
+                                " Connection reset by peer: {}\n".format(
+                                    self.addr)
+                            )
+                        self.close()
+                        self.running = False
                     except OSError:
                         if self.server.chatty:
                             handle_error("Test server failure:\n")


With this change on 3.6, the test no longer fails randomly.

Comment 4 Victor Stinner 2019-01-18 16:50:52 UTC
I proposed an upstream 3.6 backport for the fix: https://github.com/python/cpython/pull/11612

Comment 7 Victor Stinner 2019-02-01 17:04:25 UTC
I wrote a PR for python36 in Fedora Rawhide:
https://src.fedoraproject.org/rpms/python36/pull-request/22

Comment 11 Petr Viktorin (pviktori) 2019-03-11 13:22:38 UTC
This is fixed upstream, let's backport the fix.

Comment 12 Victor Stinner 2019-03-12 13:41:28 UTC
python3-3.6.8-2.el8 is ready for testing.

The test is to run "python3 -m test -u all -F -m test_connect_cadata  test_ssl". Without the fix, it failed after a few iterations. With the test, it should not fail anymore (wait at least 25 iterations). You might also run "python3 -m test -u all -F test_ssl" and wait a few iterations (at least 10), just in case.

Comment 16 errata-xmlrpc 2019-11-05 22:03:43 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2019:3520


Note You need to log in before you can comment on or make changes to this bug.