classification
Title: SSLError is not passed to the client during handshake
Type: behavior Stage:
Components: asyncio Versions: Python 3.8, Python 3.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: asvetlov, iivanyuk, yselivanov
Priority: normal Keywords:

Created on 2020-04-08 14:37 by iivanyuk, last changed 2020-04-08 14:37 by iivanyuk.

Messages (1)
msg365988 - (view) Author: Ivan Ivanyuk (iivanyuk) Date: 2020-04-08 14:37
Due to the combination of the logic here: https://github.com/python/cpython/blob/master/Lib/asyncio/sslproto.py#L483 and changes introduced in the issue https://bugs.python.org/issue37035, the assumption that "Not-logged exceptions are not skipped but reported to the user by protocol.connection_lost(exc) callback." as stated in the issue is not valid.
 If SSLError happens during the handshake, no exception get's propagated even if it's possible to log stacktrace using loop.set_debug(True).

 As opposed to the usage pattern mentioned in the initial issue comment, we are very much interested in the errors there, so, for now, I just monkey patch SSLprotocol.connection_lost() in runtime to be like this https://github.com/anthrax-0/cpython/pull/1/commits/d652ed8d0e72bb839fe4841530cc48928b3c3bb0 .

What should be the best solution for this?
History
Date User Action Args
2020-04-08 14:37:35iivanyukcreate