You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Nov 23, 2017. It is now read-only.
The following code prints uncaught handler exception but shouldn't
import asyncio
import contextlib
import aiohttp
async def main(url):
async with aiohttp.ClientSession() as session:
with contextlib.suppress(Exception):
async with session.get(url):
await response.read()
url = 'https://wrong.host.badssl.com'
loop = asyncio.get_event_loop()
loop.run_until_complete(main(url))
Exception is raised, everything is correct except printing non-catched exception in SSL protocol callback.
With PYTHONASYNCIODEBUG enabled the output is:
<asyncio.sslproto.SSLProtocol object at 0x7f10e2212470>: SSL handshake failed on verifying the certificate
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/sslproto.py", line 568, in _on_handshake_complete
raise handshake_exc
File "/usr/lib/python3.5/asyncio/sslproto.py", line 201, in feed_ssldata
self._sslobj.do_handshake()
File "/usr/lib/python3.5/ssl.py", line 638, in do_handshake
match_hostname(self.getpeercert(), self.server_hostname)
File "/usr/lib/python3.5/ssl.py", line 297, in match_hostname
% (hostname, ', '.join(map(repr, dnsnames))))
ssl.CertificateError: hostname 'wrong.host.badssl.com' doesn't match either of '*.badssl.com', 'badssl.com'
Exception in callback None
handle: <Handle cancelled _SelectorSocketTransport._read_ready() created at /usr/lib/python3.5/asyncio/selector_events.py:232>
source_traceback: Object created at (most recent call last):
File "3.py", line 13, in <module>
loop.run_until_complete(main(url))
File "/usr/lib/python3.5/asyncio/base_events.py", line 375, in run_until_complete
self.run_forever()
File "/usr/lib/python3.5/asyncio/base_events.py", line 345, in run_forever
self._run_once()
File "/usr/lib/python3.5/asyncio/base_events.py", line 1304, in _run_once
handle._run()
File "/usr/lib/python3.5/asyncio/events.py", line 125, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 232, in add_reader
handle = events.Handle(callback, args, self)
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 125, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 669, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 493, in data_received
ssldata, appdata = self._sslpipe.feed_ssldata(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 201, in feed_ssldata
self._sslobj.do_handshake()
File "/usr/lib/python3.5/ssl.py", line 638, in do_handshake
match_hostname(self.getpeercert(), self.server_hostname)
File "/usr/lib/python3.5/ssl.py", line 297, in match_hostname
% (hostname, ', '.join(map(repr, dnsnames))))
ssl.CertificateError: hostname 'wrong.host.badssl.com' doesn't match either of '*.badssl.com', 'badssl.com'
The text was updated successfully, but these errors were encountered:
Don't pass ssl certivicate error to loop.call_exception_handler()
Handle ssl.CertificateError only because ssl.SSLError may be raised not only on connection establishment.
The following code prints uncaught handler exception but shouldn't
Exception is raised, everything is correct except printing non-catched exception in SSL protocol callback.
With
PYTHONASYNCIODEBUG
enabled the output is:The text was updated successfully, but these errors were encountered: