Hello list, I run Debian Wheezy with native mpd-0.16.7-2. This has worked fine for a few years as long as I do not choose a radiostream that is broken. In that case I need to -SIGKILL mpd. This afternoon I compiled a vanilla 0.19.12 and the reproducible problem is still there:
Step 1: download the m3u list to the playlist dir, it's this particular playlist: http://wwww.xaq.nl/web.m3u Step 2: remove the state file: # rm -f /var/run/mpd/state (this is what I use) removed `/var/run/mpd/state' Step 3: start the daemon: ~/mpd/mpd-0.19.12/src>./mpd --no-daemon --stderr --verbose /etc/mpd.conf config_file: loading file /etc/mpd.conf server_socket: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded) path: SetFSCharset: fs charset is: UTF-8 libsamplerate: libsamplerate converter 'Fastest Sinc Interpolator' vorbis: Xiph.Org libVorbis 1.3.2 opus: libopus 0.9.14 sndfile: libsndfile-1.0.25 db: reading DB curl: version 7.26.0 curl: with GnuTLS/2.12.20 state_file: Loading state file /var/run/mpd/state errno: Failed to open /var/run/mpd/state: No such file or directory Step 4: $ mpc load web client: [0] opened from 127.0.0.1:37867 client: [0] process command list client: process command "load "web"" client: command returned 0 client: [0] process command list returned 0 client: [0] closed Step 5: $ mpc play 1 (this works): client: [1] process command "status" client: [1] command returned 0 client: [1] process command "play "0"" playlist: play 0:"http://amp.cesnet.cz:8000/cro-d-dur-256.ogg" client: [1] command returned 0 playlist: queue song 1:"http://lr3mp0.latvijasradio.lv:8004/" client: [1] process command list client: process command "status" client: command returned 0 client: process command "currentsong" client: command returned 0 client: [1] process command list returned 0 client: [1] closed decoder_thread: probing plugin vorbis decoder: audio_format=48000:f:2, seekable=false alsa_output: opened default type=PLUG alsa_output: format=FLOAT_LE (Float 32 bit Little Endian) alsa_output: buffer: size=26..131072 time=541..2730667 alsa_output: period: size=13..65536 time=270..1365334 alsa_output: default period_time = buffer_time/4 = 500000/4 = 125000 alsa_output: buffer_size=24000 period_size=6000 output: opened plugin=alsa name="ALSA1" audio_format=48000:f:2 state_file: Saving state file /var/run/mpd/state Step 6: Now, load entry 7 (which does not work, it generates a 404), then mpd skips to the next entry (which doesn't work either) and now mpd hangs: client: [2] opened from 127.0.0.1:37870 client: [2] process command "status" client: [2] command returned 0 client: [2] process command "play "6"" playlist: play 6:"http://radioclasica.rtveradio.cires21.com/radioclasica/mp3/icecast.audio" player: played "http://amp.cesnet.cz:8000/cro-d-dur-256.ogg" client: [2] command returned 0 playlist: queue song 7:"mmsh://mediau.yle.fi/liveklassinen" client: [2] process command list client: process command "status" client: command returned 0 client: process command "currentsong" client: command returned 0 client: [2] process command list returned 0 client: [2] closed curl: curl failed: The requested URL returned error: 404 player: played "http://radioclasica.rtveradio.cires21.com/radioclasica/mp3/icecast.audio" playlist: play 7:"mmsh://mediau.yle.fi/liveklassinen" playlist: queue song 8:"http://109.123.116.202:8020" It will somehow react to a command, like "next": client: [1] opened from 127.0.0.1:37880 client: [1] process command "next" playlist: play 8:"http://109.123.116.202:8020" $ mpc next error: Timeout Now mpd hangs: # strace -f -p 16906 Process 16906 attached with 6 threads - interrupt to quit [pid 16912] read(10, <unfinished ...> [pid 16910] futex(0x8b39e60, FUTEX_WAIT_PRIVATE, 9, NULL <unfinished ...> [pid 16909] futex(0xb2a25bd8, FUTEX_WAIT, 16912, NULL <unfinished ...> [pid 16908] futex(0x8b2988c, FUTEX_WAIT_PRIVATE, 293, NULL <unfinished ...> [pid 16907] clock_gettime(CLOCK_MONOTONIC, {26813, 616325802}) = 0 [pid 16907] clock_gettime(CLOCK_MONOTONIC, {26813, 616946386}) = 0 [pid 16907] epoll_wait(4, <unfinished ...> [pid 16906] futex(0x8b298bc, FUTEX_WAIT_PRIVATE, 33, NULL Only a -SIGKILL will stop mpd. Is this reproducable for you as well? R. BTW: server_socket: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded) I have seen this every time mpd starts, but mpd sees this I suppose: tcp6 1 1 127.0.0.1:6600 127.0.0.1:37880 LAST_ACK -- ___________________________________________________________________ It is better to remain silent and be thought a fool, than to speak aloud and remove all doubt. +------------------------------------------------------------------+ | Richard Lucassen, Utrecht | +------------------------------------------------------------------+ _______________________________________________ mpd-devel mailing list mpd-devel@musicpd.org http://mailman.blarg.de/listinfo/mpd-devel