-
Notifications
You must be signed in to change notification settings - Fork 535
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
A lot of disconnects / summary behind: need to put message size limit not to hit socket.io limits? #8179
Comments
Thanks, @vladsud I had a feeling that some of the summary behind issues I saw during my OCE shift were due to the payload, as inspecting the logs showed a similar reconnect loop. Yes, this is tied to #7599 and #7545 and indeed I did test this against ODSP..
Let's chat about this. #7987 would track the payload size, however I'd do this in stages and with a localstorage flag first, mostly due to the unknowns of perf implications of stringifying/bufferizing the payload. |
Might be worth taking a look how this is handled by socket.io. But I confirmed with Gary (for one of the sessions) that PUSH sees same thing - just transport disconnects. |
My hypothesis is that the limit is indeed on the websocket level but somewhere downstream the error is discarded. I could not wire into any exposed error handler to give us the proper error. I will attempt another debugging session on the server side to see if I find where (or if) the error gets lost. |
I would prefer to find a way to hook into that error directly and fail the op. This way, we don't even need to inspect the message size and defer this validation entirely to the socket. |
When the limit is exceeded, the server socket gets a proper error:
In turn, this will call onclose: https://github.com/socketio/engine.io/blob/271e2df94d39bbd13c33cab98cdd5915f9d28536/lib/socket.ts#L379 which further propagates the error to the What's puzzling for me is why a |
#9243 should serve as a fix for this. Considering we have multiple other issues about the same thing, this one is safe to close. |
Shows up 3 docs that hit a lot of these errors. That points to these 3 Session_Ids:
fe1b81e7-dcd1-4acd-9b6e-368733ff45cb
246d8bdd-b804-4509-929b-c6ce707925fb
1e5c288e-ef76-4822-8640-327f50fee582
In each of the cases we see rapid disconnects with "Disconnect: socket.io (disconnect): transport close" reason - example:
I assume this is mostly you testing socket.io limits.
If so, should we put a simple fix for now (while we are getting to the bottom of long term plan) to basically fail fast in case the message payload is above 90% of socket.io current / default limit?
That would have much cleaner telemetry and seems like right thing to have no matter what we do next in this area.
@pleath - FYI, in case you hear reports of summary errors.
The text was updated successfully, but these errors were encountered: