danbee / persephone

macOS MPD client written in Swift.
https://persephone.fm
MIT License
219 stars 19 forks source link

Adding tracks to the queue crashes mpd #59

Closed panchaea closed 4 years ago

panchaea commented 4 years ago

With Persephone 0.17, I'm experiencing a problem where adding tracks to the queue will crash my mpd 0.21.23 instance (running on a separate aarch64 host). When this happens, Persephone immediately crashes as well, and it tends to struggle to reconnect to the server for some time after being reopened.

Initially I thought it was similar to this issue, but when I enabled verbose logging from mpd I see the cause is a bit different:

mpd[5383]: playlist: play 0:"A Tribe Called Quest/The Low End Theory/01 Excursions.mp3"
mpd[5383]: client: [1] command returned 0
mpd[5383]: playlist: queue song 1:"A Tribe Called Quest/The Low End Theory/02 Buggin' Out.mp3"
mpd[5383]: client: [1] process command "playlistinfo"
mpd[5383]: client: [1] command returned 0
mpd[5383]: decoder_thread: probing plugin mad
mpd[5383]: client: [1] process command "play "0""
mpd[5383]: playlist: play 0:"A Tribe Called Quest/The Low End Theory/01 Excursions.mp3"
mpd[5383]: mpd: ../src/output/Source.cxx:133: ConstBuffer<void> AudioOutputSource::GetChunkData(const MusicChunk&, Filter*, unsigned int*)>
systemd[1]: mpd.service: Main process exited, code=killed, status=6/ABRT

This appears to be the relevant part of the mpd source code: https://github.com/MusicPlayerDaemon/MPD/blob/master/src/output/Source.cxx#L141

danbee commented 4 years ago

@panchaea Sorry it took me so long to get back to you. I'm using the same version of MPD locally and not seeing any issues. Are you able to try MPD 0.21.23 on x86 and see if you get the same issue? I can't imagine the architecture has anything to do with it but eliminating that would be a good place to start.

danbee commented 4 years ago

@panchaea Is this still a problem for you?