-
Notifications
You must be signed in to change notification settings - Fork 862
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
[BUG] srt-live-transmit stops listening after SRT disconnect during no active input #2997
Comments
I can't reproduce it according to the given steps. When I kill the caller, and then run the same caller again without stopping the listener, it still gets connected, every single time. There could be something specific, so please enable debug logs when testing. See |
On which system did you test? Something other than Linux? [removed irrelevant logs] Edit: pardon, that was accidentally the system copy. This is what it's doing. But it does so on every system I've tried, which is more (but not a lot more) than just those in the OP.
|
That test I did on WSL, I guess it should the same as a usual Linux (SuSE distro). Hard to know from upside what happens because various nuisances may matter here, including network settings, firewalls, or even some distinct system settings. Not sure what logs you stated as "irrelevant", but I can see something with RID. This RID (the name confusion dates back to UDT times, so don't try to pick it up logically ;) is the container that should manage two kind of things: rendezvous connections (for which it needs first the connecting rendezvous socket on the connection receiving side as well) and also normal connections to a listener in non-blocking mode - but this should be used on the caller side only. The appearance of these log lines then:
in particular, the second one after the first one, means that it has jumped over the branch where it tries to dispatch it to the listener because there's no listener here (queue.cpp, So yes, this confirms that the listener socket indeed has been closed, but I need to understand, what exactly has happened to make the listener socket closed, while the application is still working. I'd need the complete log for it, you can attach it as a large file if need be. Maybe this: try first to run the listener side app with |
The behavior as described in the OP is identical on OpenSUSE Tumbleweed 20250108 (srt 1.5.4 from zypper).
I accidentally posted the wrong logs, which I removed. Apologies for the confusion.
These are the logs that I had removed from the other comment:
That's the full extent of the regular logs. Nothing ever happens thereafter. Here's the full debug log: log.txt |
Wait. I have a feeling that your procedure when producing this above log doesn't exactly match the aforementioned repro procedure. In comparison to the log that I have, yours doesn't even show any case of the second connection attempt. There's one connection, which is later broken, and then it looks like the listener was interrupted in the console. Could you please repeat this? |
Well of course there's no second connection attempt. :-) It stops listening after the connection is broken. That's the very problem! |
In short, if you have input going at the moment of disconnect, the bound port is never released (or immediately rebound?) and all is well. This can be verified with If there doesn't happen to be any input at the moment of disconnect, the port is released while the program continues running as if all is well. This can be verified with This problem only exists with |
Describe the bug
srt-live-transmit stops listening on the configured port if the SRT connection was closed at a moment when there was no input
To Reproduce
Steps to reproduce the behavior:
cat | srt-live-transmit -v file://con srt://127.0.0.1:5000?mode=listener
srt-live-transmit -v srt://127.0.0.1:5000?mode=caller udp://127.0.0.1:5001
If you now try to reconnect or check with for example
netstat -anu | grep 5000
you'll see the bind has disappeared.Expected behavior
The listener never stops listening on the configured port.
Desktop (please provide the following information):
The text was updated successfully, but these errors were encountered: