[This issue seems similar to #11550 (closed) which reports as fixed in VLC 3]
I'm using VLC 3.0.18 to play https://ice5.somafm.com/gsclassic-128-mp3 . I hit pause regularly and sometimes for long periods of time. On play again the stream plays until the end of the buffer then the stream stops. VLC in this case doesn't re-connect or skip to the next item the playlist. To resume play I have to hit stop and then play again. Is this expected? I think the stream should re-connect either after the buffer runs out or upon resume. What do you think?
$ vlc --versionVLC media player 3.0.18 Vetinari (revision 3.0.13-8-g41878ff4f2)VLC version 3.0.18 Vetinari (3.0.13-8-g41878ff4f2)Compiled by buildd on x86-grnet-01.debian.org (Dec 2 2022 21:08:18)Compiler: gcc version 10.2.1 20210110 (Debian 10.2.1-6)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
0
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
Also I noticed this problem more often after longer pauses. i.e. pausing in the order of 10/15 minutes seems to work as expected, whereas resuming the next day after ~12h (and post suspend-to-ram) doesn't seem to work.
I'm also happy to help debugging and run any tests, HTH!
Another symptom I noticed: unfortunately my ISP cycles its NAT pool every four hours, and the end user effect is that TCP connections are left hanging, including VLC streams.
The situation is certainly unfortunate with connections just left hanging, and I couldn't get TCP timeouts to kick in (i.e. the socket never changes state as far as I can tell).
VLC can't reconnect if it didn't get disconnected. It's hard to reproduce for testing, but AFAIK, VLC does reconnect automatically when HTTP or HTTPS fails.
Fair enough! I'll look for a way to get a reproducer locally. Do you have any pointers/suggestions on which/what debug logging to enable at runtime to understand better what VLC thinks of the situation? thank you!
I'm looking generally for more information from VLC that might help debugging, though indeed I just experienced the disconnection again and from debug messages this is all I got:
Some more information in case it is useful: stream status is unchanged (i.e. the "pause" button is displayed in the UI, clicking it even multiple times doesn't do anything), stopping/restarting the stream though does resume as expected.
I'll be working to get a way to reproduce this behaviour and report back
The easiest reproducer on linux I found so far is to DROP packets from the stream source, i.e. the following:
# get the stream source ip/portlsof -p $(pidof vlc) -a -i -n -w# block via iptables, the following is for the stream I'm testing with at# https://ice5.somafm.com/gsclassic-128-mp3sudo iptables -I INPUT 1 -s 198.24.44.211 -p tcp --sport 443 -j DROP# clean up by deleting the above rulesudo iptables -D INPUT 1
I'm attaching a trimmed version of the strace log at around the time I have installed the DROP rule, it seems to me that after this line the socket fd is never polled again:
Thank you for taking a look, I agree on the network/input level VLC is stuck and can't tell things went sideways. On a user higher level though things certainly did go wrong: playing has stopped
I too don't look forward to VLC becoming an OS :D. Regarding this issue (i.e. for whatever reason a network stream stops receiving data and playing stops) I get the impression it won't get fixed? If that's the case that's a bummer, though feel free to close the issue and thank you anyways
As I said, it's hard to test, but AFAIK, VLC does reconnect if it gets disconnected. If it doesn't get disconnected (which is what happens here), then it will wait until the user stops.
We could forcefully send a PING on resume from pause to force a health check of the connection, but that would only work on HTTP/2, and in all likelihood, exceed the user's patience.
Thank you for the explanation @Courmisch, it seems VLC is working as intended in this case (?) From an end user's point of view I must say I find the high-level behavior (the stream stops, I have to stop/play again) disappointing. At any rate, I get that there doesn't seem to be feedback from higher layers / playback that something has happened. IMHO good to close the issue