discord.py-self icon indicating copy to clipboard operation
discord.py-self copied to clipboard

Fragmented control frame causes crash

Open AndKe opened this issue 1 year ago • 1 comments

Summary

aiohttp.http_websocket.WebSocketError: Received fragmented control frame

Reproduction Steps

Run the plugin, and wait for this to happen:

Code

2024-05-10 03:14:55 INFO     discord.gateway Gateway has successfully RESUMED session 0371eeb1a7104f8e5bb07831b63265ad.
Traceback (most recent call last):
  File "/home/andre/prog/PycharmProjects/mav-progs/t.py", line 96, in <module>
    run_bot('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andre/prog/PycharmProjects/mav-progs/t.py", line 77, in run_bot
    client.run(token)
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/discord/client.py", line 1106, in run
    asyncio.run(runner())
  File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/discord/client.py", line 1095, in runner
    await self.start(token, reconnect=reconnect)
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/discord/client.py", line 1026, in start
    await self.connect(reconnect=reconnect)
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/discord/client.py", line 907, in connect
    await self.ws.poll_event()
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/discord/gateway.py", line 626, in poll_event
    raise msg.data
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/aiohttp/client_ws.py", line 244, in receive
    msg = await self._reader.read()
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/aiohttp/streams.py", line 681, in read
    return await super().read()
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/aiohttp/streams.py", line 640, in read
    await self._waiter
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/aiohttp/http_websocket.py", line 314, in feed_data
    return self._feed_data(data)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/aiohttp/http_websocket.py", line 321, in _feed_data
    for fin, opcode, payload, compressed in self.parse_frame(data):
                                            ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andre/prog/PycharmProjects/mav-progs/venv/lib/python3.12/site-packages/aiohttp/http_websocket.py", line 486, in parse_frame
    raise WebSocketError(
aiohttp.http_websocket.WebSocketError: Received fragmented control frame

Expected Results

I's expect it to just ignore the fragmented frame, if not able to put it together

Actual Results

see above

System Information

$ python -m discord -v

  • Python v3.12.3-final
  • discord.py-self v2.1.0-alpha
    • discord.py-self metadata: v2.0.0
  • aiohttp v3.9.4
  • system info: Linux 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024

Checklist

  • [X] I have searched the open issues for duplicates.
  • [X] I have shared the entire traceback.
  • [X] I am using a user token (and it isn't visible in the code).

Additional Information

No response

AndKe avatar May 10 '24 07:05 AndKe

This is a Discord issue; their websocket should not be sending fragmented frames. However, I'll implement a fix for this soon as it doesn't look like they're fixing it.

dolfies avatar May 15 '24 01:05 dolfies

Is this still an issue?

dolfies avatar Sep 17 '24 22:09 dolfies

I do no longer use the script, so I do not know, sorry.

AndKe avatar Sep 18 '24 06:09 AndKe

No worries! Pretty sure Discord fixed this, so I'm going to close this for now

dolfies avatar Sep 18 '24 06:09 dolfies