Skip to content
This repository has been archived by the owner on Dec 28, 2021. It is now read-only.

SSL error: application data after close_notify #54

Open
lapster88 opened this issue Dec 9, 2020 · 0 comments
Open

SSL error: application data after close_notify #54

lapster88 opened this issue Dec 9, 2020 · 0 comments

Comments

@lapster88
Copy link

Summary

When using ayncio.gather on GetFullMatch, I get an SSL error. I think this is a python core issue (https://bugs.python.org/issue39951) but I'm hoping someone here might be able to recommend a work around.

Reproduction Steps

This snippet should be able to reproduce the error:

import callofduty as cod
import asyncio

async def main():
    id = 'BattleNetID of interest'
    client = await cod.Login("UserName", "Password")
    player = await client.GetPlayer(cod.Platform.BattleNet, id)
    matches = await player.matches(cod.Title.ModernWarfare, cod.Mode.Warzone)
    match_details = await asyncio.gather(*(client.GetFullMatch(cod.Platform.BattleNet, cod.Title.ModernWarfare, cod.Mode.Warzone, match.id) for match in matches))
asyncio.run(main())

I tried it using Activision instead of BattleNet as the platform and still got the error.

Expected Results

I expected the asyncio.gather call to return a list of match-details dictionaries.

Actual Results

Traceback (most recent call last):
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpx/_exceptions.py", line 326, in map_exceptions
    yield
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpx/_client.py", line 1502, in _send_single_request
    (status_code, headers, stream, ext,) = await transport.arequest(
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 218, in arequest
    response = await connection.arequest(
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpcore/_async/connection.py", line 106, in arequest
    return await self.connection.arequest(method, url, headers, stream, ext)
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpcore/_async/http11.py", line 72, in arequest
    ) = await self._receive_response(timeout)
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpcore/_async/http11.py", line 133, in _receive_response
    event = await self._receive_event(timeout)
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpcore/_async/http11.py", line 172, in _receive_event
    data = await self.socket.read(self.READ_NUM_BYTES, timeout)
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpcore/_backends/asyncio.py", line 153, in read
    raise
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/contextlib.py", line 135, in __exit__
    self.gen.throw(type, value, traceback)
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpcore/_exceptions.py", line 12, in map_exceptions
    raise to_exc(exc) from None
httpcore.ReadError: [SSL: APPLICATION_DATA_AFTER_CLOSE_NOTIFY] application data after close notify (_ssl.c:2744)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/mnt/c/Users/mlapp/CodStats/bug.py", line 51, in <module>
    asyncio.run(main())
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/mnt/c/Users/mlapp/CodStats/bug.py", line 14, in main
    match_details = await asyncio.gather(*(client.GetFullMatch(cod.Platform.BattleNet, cod.Title.ModernWarfare, cod.Mode.Warzone, match.id) for match in matches))
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/callofduty/client.py", line 662, in GetFullMatch
    await self.http.GetFullMatch(
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/callofduty/http.py", line 273, in GetFullMatch
    return await self.Send(
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/callofduty/http.py", line 103, in Send
    res: Response = await client.request(
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpx/_client.py", line 1371, in request
    response = await self.send(
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpx/_client.py", line 1406, in send
    response = await self._send_handling_auth(
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpx/_client.py", line 1444, in _send_handling_auth
    response = await self._send_handling_redirects(
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpx/_client.py", line 1476, in _send_handling_redirects
    response = await self._send_single_request(request, timeout)
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpx/_client.py", line 1502, in _send_single_request
    (status_code, headers, stream, ext,) = await transport.arequest(
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/contextlib.py", line 135, in __exit__
    self.gen.throw(type, value, traceback)
  File "/home/matt/miniconda3/envs/cod/lib/python3.9/site-packages/httpx/_exceptions.py", line 343, in map_exceptions
    raise mapped_exc(message, **kwargs) from exc  # type: ignore
httpx.ReadError: [SSL: APPLICATION_DATA_AFTER_CLOSE_NOTIFY] application data after close notify (_ssl.c:2744)

Process finished with exit code 1

Checklist

  • [x ] I have searched the open Issues for duplicates
  • [x ] I have shown the entire traceback, if possible
  • [x ] I have removed my token from display, if visible

System Information

This command python -m callofduty -v didn't work for me but I am using python 3.9, callofduty.py v1.2.2 on WSL Ubuntu with up to date packages.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants