Sitelet https://github.com/python/cpython/issues/88403
Skip to content

test_ssl randomly fails on macOS GH Action: test_get_server_certificate_sni() and test_get_server_certificate_timeout() #88403

Description

@vstinner
BPO 44237
Nosy @vstinner, @tiran, @erlend-aasland
Superseder
  • bpo-44229: test_ssl: test_get_server_certificate() and test_msg_callback_deadlock_bpo43577() fail randomly on the macOS CI
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = 'https://github.com/tiran'
    closed_at = <Date 2021-06-24.12:29:09.268>
    created_at = <Date 2021-05-25.20:27:06.536>
    labels = ['expert-SSL', 'tests', '3.11']
    title = 'test_ssl randomly fails on macOS GH Action: test_get_server_certificate_sni() and test_get_server_certificate_timeout()'
    updated_at = <Date 2021-06-24.12:29:09.267>
    user = 'https://github.com/vstinner'

    bugs.python.org fields:

    activity = <Date 2021-06-24.12:29:09.267>
    actor = 'erlendaasland'
    assignee = 'christian.heimes'
    closed = True
    closed_date = <Date 2021-06-24.12:29:09.268>
    closer = 'erlendaasland'
    components = ['Tests', 'SSL']
    creation = <Date 2021-05-25.20:27:06.536>
    creator = 'vstinner'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 44237
    keywords = []
    message_count = 5.0
    messages = ['394392', '394394', '394395', '396413', '396484']
    nosy_count = 3.0
    nosy_names = ['vstinner', 'christian.heimes', 'erlendaasland']
    pr_nums = []
    priority = 'normal'
    resolution = 'duplicate'
    stage = 'resolved'
    status = 'closed'
    superseder = '44229'
    type = None
    url = 'https://bugs.python.org/issue44237'
    versions = ['Python 3.11']

    Activity

    1. vstinner commented on May 25, 2021

      @vstinner
      MemberAuthor

      https://github.com/python/cpython/pull/26359/checks?check_run_id=2668874284

      Error 1:

      2021-05-25T20:02:41.9174160Z ======================================================================
      2021-05-25T20:02:41.9268350Z ERROR: test_get_server_certificate_sni (test.test_ssl.SimpleBackgroundTests)
      2021-05-25T20:02:41.9272030Z ----------------------------------------------------------------------

      2021-05-25T20:02:41.9275950Z Traceback (most recent call last):
      2021-05-25T20:02:41.9374600Z   File "/Users/runner/work/cpython/cpython/Lib/test/test_ssl.py", line 2147, in test_get_server_certificate_sni
      2021-05-25T20:02:41.9404170Z     pem = ssl.get_server_certificate((host, port), ca_certs=SIGNING_CA)
      2021-05-25T20:02:41.9483350Z   File "/Users/runner/work/cpython/cpython/Lib/ssl.py", line 1520, in get_server_certificate
      2021-05-25T20:02:41.9505910Z     with create_connection(addr, timeout=timeout) as sock:
      2021-05-25T20:02:41.9585510Z   File "/Users/runner/work/cpython/cpython/Lib/socket.py", line 844, in create_connection
      2021-05-25T20:02:41.9607200Z     raise err
      2021-05-25T20:02:41.9687730Z   File "/Users/runner/work/cpython/cpython/Lib/socket.py", line 832, in create_connection
      2021-05-25T20:02:41.9708730Z     sock.connect(sa)
      2021-05-25T20:02:41.9791030Z ConnectionRefusedError: [Errno 61] Connection refused

      Error 2 when test_ssl is re-run:

      ======================================================================
      FAIL: test_get_server_certificate_timeout (test.test_ssl.SimpleBackgroundTests)
      ----------------------------------------------------------------------

      Traceback (most recent call last):
        File "/Users/runner/work/cpython/cpython/Lib/test/test_ssl.py", line 2165, in test_get_server_certificate_timeout
          with self.assertRaises(socket.timeout):
      AssertionError: TimeoutError not raised
    2. tiran commented on May 25, 2021

      @tiran
      Member

      It looks like a duplicate or very similar to bpo-44229.

    3. vstinner commented on May 25, 2021

      @vstinner
      MemberAuthor

      https://github.com/python/cpython/pull/26359/checks?check_run_id=2668874284

      test.pythoninfo:

      ssl.HAS_SNI: True
      ssl.OPENSSL_VERSION: OpenSSL 1.1.1k 25 Mar 2021
      ssl.OPENSSL_VERSION_INFO: (1, 1, 1, 11, 15)
      ssl.OP_ALL: 0x80000054
      ssl.OP_NO_TLSv1_1: 0x10000000
      ssl.SSLContext.maximum_version: MAXIMUM_SUPPORTED
      ssl.SSLContext.minimum_version: TLSv1_2
      ssl.SSLContext.options: OP_NO_COMPRESSION|OP_ENABLE_MIDDLEBOX_COMPAT|OP_CIPHER_SERVER_PREFERENCE|OP_NO_SSLv3|0x80000054
      ssl.SSLContext.protocol: PROTOCOL_TLS_CLIENT
      ssl.SSLContext.verify_mode: CERT_REQUIRED
      ssl.default_https_context.maximum_version: MAXIMUM_SUPPORTED
      ssl.default_https_context.minimum_version: TLSv1_2
      ssl.default_https_context.options: OP_NO_COMPRESSION|OP_ENABLE_MIDDLEBOX_COMPAT|OP_CIPHER_SERVER_PREFERENCE|OP_NO_SSLv3|0x80000054
      ssl.default_https_context.protocol: PROTOCOL_TLS_CLIENT
      ssl.default_https_context.verify_mode: CERT_REQUIRED
      ssl.stdlib_context.maximum_version: MAXIMUM_SUPPORTED
      ssl.stdlib_context.minimum_version: TLSv1_2
      ssl.stdlib_context.options: OP_NO_COMPRESSION|OP_ENABLE_MIDDLEBOX_COMPAT|OP_CIPHER_SERVER_PREFERENCE|OP_NO_SSLv3|0x80000054
      ssl.stdlib_context.protocol: PROTOCOL_TLS_CLIENT
      ssl.stdlib_context.verify_mode: CERT_NONE

    4. vstinner commented on Jun 23, 2021

      @vstinner
      MemberAuthor

      https://github.com/python/cpython/pull/26874/checks?check_run_id=2893904059

      ERROR: test_connect_cadata (test.test_ssl.SimpleBackgroundTests)
      ----------------------------------------------------------------------

      Traceback (most recent call last):
        File "/Users/runner/work/cpython/cpython/Lib/test/test_ssl.py", line 2131, in test_connect_cadata
          s.connect(self.server_addr)
        File "/Users/runner/work/cpython/cpython/Lib/ssl.py", line 1379, in connect
          self._real_connect(addr, False)
        File "/Users/runner/work/cpython/cpython/Lib/ssl.py", line 1370, in _real_connect
          self.do_handshake()
        File "/Users/runner/work/cpython/cpython/Lib/ssl.py", line 1346, in do_handshake
          self._sslobj.do_handshake()
      ConnectionResetError: [Errno 54] Connection reset by peer
    5. erlend-aasland commented on Jun 24, 2021

      @erlend-aasland
      Contributor

      Duplicate of #88395. Please reopen if you disagree.

    6. transferred this issue fromon Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    Labels

    3.11only security fixestestsTests in the Lib/test dirtopic-SSL

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions