-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Websocket issues while headers are fragmented #1951
Comments
Thanks for detailed description! I will look into this problem |
Thanks Nikolay! Did you have a chance to investigate this further ? Let me know if you need more data, etc. |
Hi @fafhrd91, Probably this was caused by a bug in the So, Thanks, |
haven't looked yet. @jonathanslenders would you create PR? |
I'm working on this issue and other websocket-related issues (based on https://rawgit.com/pjknkda/ws-spec-check/master/reports/fuzzingclient/index.html) and it's almost done. |
@pjknkda thanks for fixing this problem! Seems to work fine :) |
I'll publish 2.1.1 bugfix with #1962 very soon. |
Wait befor I review #1955 |
Sure. Any other issues? |
I don't think we have any breaking changes, lets just release everything as 2.1.1 |
It works to me. |
yes, I want to fix it |
This issue effects us. Working on the master branch fixes it. Any ETA on 2.1.1 ? |
I am looking for help to narrow down an issue with websockets. Intermittently, the server sends a frame that is split in multiple TCP/IP packets which seems to be the problem for the websocket client implementation in aiohttp. I observe the errors like : "Received frame with non-zero reserved bits" or no response to PING which drops the connection as 'Idle'.
The example is PING which is normally send in one single packet(packet 10902) and parsed correctly by the library but when it comes split in two packets(11135, 11136), it's not recognized as PING. I put the debug line in http_websocket.py to see what's coming in to parse_frame()
http_websocket.py
Packet capture:
Logs from my client:
2017-06-02 15:57:10,960http_websocket.py:191: _feed_data() parse-frame: b'\x89\x00'
2017-06-02 15:57:10,961 Detail="The websocket received a ping."
2017-06-02 15:57:10,961 Detail="Sent pong response."
2017-06-02 15:57:10,961 Detail="Listening for messages on websocket."
2017-06-02 15:57:26,087http_websocket.py:191: _feed_data() parse-frame: b'\x89'
2017-06-02 15:57:26,087http_websocket.py:191: _feed_data() parse-frame: b'\x00'
If I am not mistaken the library treats the received data as two independent frames(framing issue?) and does not detect PING.
Thanks in advance for help!
The text was updated successfully, but these errors were encountered: