[New-bugs-announce] [issue39758] StreamWriter.wait_closed() can hang indefinately.

Tom Christie report at bugs.python.org
Wed Feb 26 05:36:06 EST 2020

New submission from Tom Christie <tom at tomchristie.com>:

Raising an issue that's impacting us on `httpx`.

It appears that in some cases SSL unwrapping can cause `.wait_closed()` to hang indefinately.

Trio are particularly careful to work around this case, and have an extensive comment on it: https://github.com/python-trio/trio/blob/31e2ae866ad549f1927d45ce073d4f0ea9f12419/trio/_ssl.py#L779-L829 

Originally raised via https://github.com/encode/httpx/issues/634

Tested on:

* Python 3.7.6
* Python 3.8.1

import asyncio
import ssl
import certifi

hostname = 'login.microsoftonline.com'
context = ssl.create_default_context()

async def main():
    reader, writer = await asyncio.open_connection(hostname, 443, ssl=context)
    print('close started')
    await writer.wait_closed()
    print('close completed')


components: asyncio
messages: 362688
nosy: asvetlov, tomchristie, yselivanov
priority: normal
severity: normal
status: open
title: StreamWriter.wait_closed() can hang indefinately.
type: behavior
versions: Python 3.7, Python 3.8

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list