-
Notifications
You must be signed in to change notification settings - Fork 279
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
websocat sometimes doesn't flush pending data, hangs #250
Comments
What OS do you use? Is it reproducible on Linux? Is
It is the only difference, not e.g. |
Yes, it happens on Linux 6.6.7 for me.
Yes; if I point
I can test this but it will take some time. |
If you are open for testing, you can try early Websocat4 build - does it flush properly?
websocat4early.zip - linux x86_64 executable, you can also built yourself from |
It hangs with plain
I am, but, sorry, I can't use that binary. e6a57f3 does not hang. |
Is a significantly older pre-built Websocat version (e.g. https://github.com/vi/websocat/releases/tag/v1.8.0) also buggy? Is the problem also reproducible locally if one uses network namespaces, veth and netem to emulate a non-perfect network? What does "send a large packet to 127.0.0.1:1234" mean from a user perspective? Is something like Fixing it for Websocat1 may be nontrivial (especially without a good repro), and Websocat1 may be nearing sunset. |
Yes. I tested 1.8.0 and 1.3.0 and they hang.
I would need to set that up 👀
On the other side of the WebSocket is an SQL server. The hang happens when, after a handshake and authentication, I send a large query (120 KiB). I have not tried piping
I think the difference is that there isn't a finite amount of data on input (there's always more data to push out any stuck previous data). A better chance to reproduce this would be to connect two echo servers, and then send an initial large packet; it should bounce infinitely.
|
I'm running:
When I send a large packet to
127.0.0.1:1234
, sometimes websocat doesn't send it to the destination immediately (and just sits there until something causes it to send the pending data).If the destination sends a PING, websocat does flush pending data.
If I add
--ping-interval
to websocat's command line, that also causes websocat to send pending data when it sends PINGs.I can reproduce it with v1.12.0 and current master (34ddb4d).
I can only reproduce it when the target is a remote host and not localhost (probably because the buffer needs to actually pile up locally for the problem to happen).
The text was updated successfully, but these errors were encountered: