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
threading implementation with process_request
raise ConnectionClosedError
#1419
Comments
I noticed that it is receiving empty bytes as a data response, and this causes the socket to close. websockets/src/websockets/sync/connection.py Lines 549 to 550 in e217458
websockets/src/websockets/sync/connection.py Lines 614 to 616 in e217458
Another thing is that when the status code is not 101, the state does not end up being OPEN, which then closes the connection as well. websockets/src/websockets/server.py Lines 541 to 547 in e217458
websockets/src/websockets/sync/server.py Lines 143 to 146 in e217458
I have made this PR that solved this error for me, but I don't know if it broke tests or other functinalities |
The change causes tests to hang -- because you removed the code paths that manages the end of a connection. The issue looks legit but that's not the right fix. |
I think I figured it out now. The code is handling all connections as WebSocket connections. When it is an HTTP connection and a request is made, it is supposed to close the connection, which differs from a WebSocket, where it is expected to keep the connection alive. I created a checker to verify if it is a WebSocket before handling it. I have created this new PR with this change: |
I'm using:
When using the threading implementation like in this code:
Any call to the /healthz endpoint works but raise a
ConnectionCloseError
:The text was updated successfully, but these errors were encountered: