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]: Jukebox mode under Windows #2767
Comments
I can confirm this issue on Windows. If I make a special build and replace navidrome/core/playback/mpv/mpv.go Line 141 in 6f7b482
|
I will issue a PR for this later today. |
Use named pipe for socket path under windows during mpv playback, change function name, unexport function Signed-off-by: apkatsikas <apkatsikas@gmail.com>
This will only change the pipe name. Start from here: navidrome/core/playback/mpv/track.go Line 44 in 6f7b482
navidrome/core/playback/mpv/track.go Lines 206 to 212 in 6f7b482
It should not be filesystem-related on Windows. |
I've opened the PR here - #2774 |
The doc you've linked with npipe says |
Fix typo Signed-off-by: apkatsikas <apkatsikas@gmail.com>
@korzhyc - the GitHub actions bot on this PR provides a binaries.zip that includes a Windows build if you want to give it a try #2774 (comment) |
Yeah, it's working now. Upd: can we continue here? There's smth wrong going on track switching.... (i'm investigating) |
Definitely let me know what you find. |
If
mpv.log:
And two more things are bothering me... Playback stops when I manipulate the queue. Is it by design?This applies to deleting, adding and moving items.
Bugfeature:Currently I can control playback from the second client. That's cool! |
I can confirm a similar issue with exclusive mode in my Windows. Playback fails with INFO log navidrome/core/playback/device.go Line 259 in 6f7b482
I can not recreate your issue with the track stopping during queue manipulation. I used API endpoints for jukebox control during playback for action=add and action=remove in Windows. Playback continued as expected. I think this can be a new issue - it might be specific to how your mobile client interacts with Navidrome, or maybe something specific in your setup/environment that we will need to figure out so we can re-create. Regarding your bugfeature issue I am not totally sure what the suggestion is - feel free to submit an issue for it, though. |
Early return for Close on Windows Signed-off-by: apkatsikas <apkatsikas@gmail.com>
Merge master and move logic into utils function Signed-off-by: apkatsikas <apkatsikas@gmail.com>
Update import and run prettier Signed-off-by: apkatsikas <apkatsikas@gmail.com>
Update function name Signed-off-by: apkatsikas <apkatsikas@gmail.com>
Create track_close files for both platforms and move MpvTrack Close into new file Signed-off-by: apkatsikas <apkatsikas@gmail.com>
Create SocketName function for both platforms, restore name of TempFileName Signed-off-by: apkatsikas <apkatsikas@gmail.com>
Add missing params to SocketName on windows Signed-off-by: apkatsikas <apkatsikas@gmail.com>
* bug(core/playback/mpv): jukebox mode under windows - #2767 Use named pipe for socket path under windows during mpv playback, change function name, unexport function Signed-off-by: apkatsikas <apkatsikas@gmail.com> * bug(core/playback/mpv): jukebox mode under windows - #2767 Fix typo Signed-off-by: apkatsikas <apkatsikas@gmail.com> * bug(core/playback/mpv): jukebox mode under windows - #2767 Early return for Close on Windows Signed-off-by: apkatsikas <apkatsikas@gmail.com> * bug(core/playback/mpv): jukebox mode under windows - #2767 Update import and run prettier Signed-off-by: apkatsikas <apkatsikas@gmail.com> * bug(core/playback/mpv): jukebox mode under windows - #2767 Update function name Signed-off-by: apkatsikas <apkatsikas@gmail.com> * bug(core/playback/mpv): jukebox mode under windows - #2767 Create track_close files for both platforms and move MpvTrack Close into new file Signed-off-by: apkatsikas <apkatsikas@gmail.com> * bug(core/playback/mpv): jukebox mode under windows - #2767 Create SocketName function for both platforms, restore name of TempFileName Signed-off-by: apkatsikas <apkatsikas@gmail.com> * bug(core/playback/mpv): jukebox mode under windows - #2767 Add missing params to SocketName on windows Signed-off-by: apkatsikas <apkatsikas@gmail.com> * Unexport SocketName, use socketName in NewTrack --------- Signed-off-by: apkatsikas <apkatsikas@gmail.com>
Hey @korzhyc, now that @apkatsikas's PR was merged, can you try the latest from |
0.50.1-SNAPSHOT (badc0cb) - the version I still use. 0.51.1-SNAPSHOT (bcec15d) - the bug about opening the socket has been resolved. When I switch to the next track:
mpv.log from the old/hanging process:
When I try to kill extra mpv processes:
|
navidrome/core/playback/mpv/track_close_win.go Lines 5 to 8 in c2f932c
... it handles, if you terminate the process. |
@korzhyc Can you please try this build? |
0.51.1-SNAPSHOT (068c1e9) - this one is okay |
0_68c1e9a: that one =) |
Just to be sure: you downlaoded and tested the binary I posted in my comment above, right? Anyway, I pushed the fix and the Thanks for validating it. |
Rechecked the last one, jtbs. |
[one moment later] I caught this heisenbug: Normal shutdown:
Bugged shutdown (or vice versa?):
|
Seems that the PlaybackServer is not handling context cancelation correctly.... This is a related but different issue. Can you please open a new issue in GH with the details? Thanks! |
Thanks for opening #2978. As it is a different issue, I'll close this one. |
I confirm that:
Version
0.50.2
Current Behavior
Navidrome successfully launches mpv:
That's all, no action. mpv is pending. Subsonic client freezes at the beginning of playback.
Expected Behavior
Proper socket check under Windows.
Steps To Reproduce
No response
Environment
How Navidrome is installed?
Binary (from downloads page)
Configuration
Relevant log output
Anything else?
https://github.com/natefinch/npipe/blob/v2/README.md
Code of Conduct
The text was updated successfully, but these errors were encountered: