FS#42089 - [mpd][ffmpeg] update results in no play sound
Attached to Project:
Arch Linux
Opened by Bogomil (smirky) - Tuesday, 23 September 2014, 15:32 GMT
Last edited by Gaetan Bisson (vesath) - Saturday, 25 April 2015, 21:09 GMT
Opened by Bogomil (smirky) - Tuesday, 23 September 2014, 15:32 GMT
Last edited by Gaetan Bisson (vesath) - Saturday, 25 April 2015, 21:09 GMT
|
Details
Description:
Since today's updates of mpd and ffmpeg, there's no sound going through the local play. After downgrading mpd from 0.18.14-2 to 0.18.14-1 and ffmpeg from 1:2.4.1-1 to 1:2.3.3-2, the problem is gone. Additional info: ffmpeg 1:2.4.1-1 mpd 0.18.14-2 Steps to reproduce: Update to latest mpd and ffmpeg builds. |
This task depends upon
Closed by Gaetan Bisson (vesath)
Saturday, 25 April 2015, 21:09 GMT
Reason for closing: Works for me
Saturday, 25 April 2015, 21:09 GMT
Reason for closing: Works for me
Sep 23 10:14:01 kujira systemd[1]: Started Music Player Daemon.
Sep 23 10:14:01 kujira mpd[675]: server_socket: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)
Sep 23 10:14:01 kujira mpd[675]: output: No 'audio_output' defined in config file
Sep 23 10:14:01 kujira mpd[675]: output: Attempt to detect audio output device
Sep 23 10:14:01 kujira mpd[675]: output: Attempting to detect a alsa audio device
Sep 23 10:14:01 kujira mpd[675]: ALSA lib confmisc.c:768:(parse_card) cannot find card '1'
Sep 23 10:14:01 kujira mpd[675]: ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
Sep 23 10:14:01 kujira mpd[675]: ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
Sep 23 10:14:01 kujira mpd[675]: ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
Sep 23 10:14:01 kujira mpd[675]: ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
Sep 23 10:14:01 kujira mpd[675]: ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
Sep 23 10:14:01 kujira mpd[675]: ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
Sep 23 10:14:01 kujira mpd[675]: ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
Sep 23 10:14:01 kujira mpd[675]: alsa_output: Error opening default ALSA device: No such file or directory
Sep 23 10:14:01 kujira mpd[675]: output: Attempting to detect a oss audio device
Sep 23 10:14:01 kujira mpd[675]: oss_output: Error opening OSS device "/dev/dsp": No such file or directory
Sep 23 10:14:01 kujira mpd[675]: oss_output: Error opening OSS device "/dev/sound/dsp": No such file or directory
Sep 23 10:14:01 kujira mpd[675]: output: Attempting to detect a pulse audio device
Sep 23 10:14:01 kujira systemd[1]: mpd.service: main process exited, code=killed, status=6/ABRT
Sep 23 10:14:01 kujira systemd[1]: Unit mpd.service entered failed state.
Sep 23 10:14:01 kujira mpd[675]: Assertion 'm' failed at pulse/thread-mainloop.c:236, function pa_threaded_mainloop_get_api(). Aborting.
audio_output {
type "alsa"
name "card"
}
Sep 23 10:20:36 kujira mpd[1359]: alsa_mixer: Failed to read mixer for 'PCH [HDA Intel PCH]': failed to attach to default: No such file or directory
My conf:
Sep 23 18:25 : alsa_output: Failed to open "internal" [alsa]: Failed to open ALSA device "plug:dmix": No such file or directory
ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM dmix
$ systemctl start mpd
$ systemctl status mpd -n 30
● mpd.service - Music Player Daemon
Loaded: loaded (/usr/lib/systemd/system/mpd.service; enabled)
Active: failed (Result: signal) since Tue 2014-09-23 15:58:47 TAHT; 4min 5s ago
Process: 30222 ExecStart=/usr/bin/mpd --no-daemon (code=killed, signal=ABRT)
Main PID: 30222 (code=killed, signal=ABRT)
Sep 23 15:58:47 aji systemd[1]: Started Music Player Daemon.
Sep 23 15:58:47 aji mpd[30222]: server_socket: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)
Sep 23 15:58:47 aji mpd[30222]: output: No 'audio_output' defined in config file
Sep 23 15:58:47 aji mpd[30222]: output: Attempt to detect audio output device
Sep 23 15:58:47 aji mpd[30222]: output: Attempting to detect a alsa audio device
Sep 23 15:58:47 aji mpd[30222]: ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
Sep 23 15:58:47 aji mpd[30222]: ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
Sep 23 15:58:47 aji mpd[30222]: ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
Sep 23 15:58:47 aji mpd[30222]: ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
Sep 23 15:58:47 aji mpd[30222]: ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
Sep 23 15:58:47 aji mpd[30222]: ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
Sep 23 15:58:47 aji mpd[30222]: ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
Sep 23 15:58:47 aji mpd[30222]: ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
Sep 23 15:58:47 aji mpd[30222]: alsa_output: Error opening default ALSA device: No such file or directory
Sep 23 15:58:47 aji mpd[30222]: output: Attempting to detect a oss audio device
Sep 23 15:58:47 aji mpd[30222]: oss_output: Error opening OSS device "/dev/dsp": No such file or directory
Sep 23 15:58:47 aji mpd[30222]: oss_output: Error opening OSS device "/dev/sound/dsp": No such file or directory
Sep 23 15:58:47 aji mpd[30222]: output: Attempting to detect a pulse audio device
Sep 23 15:58:47 aji mpd[30222]: Assertion 'm' failed at pulse/thread-mainloop.c:236, function pa_threaded_mainloop_get_api(). Aborting.
Sep 23 15:58:47 aji systemd[1]: mpd.service: main process exited, code=killed, status=6/ABRT
Sep 23 15:58:47 aji systemd[1]: Unit mpd.service entered failed state.
However, the following works just fine:
$ /usr/bin/mpd --no-daemon
server_socket: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)
output: No 'audio_output' defined in config file
output: Attempt to detect audio output device
output: Attempting to detect a alsa audio device
output: Successfully detected a alsa audio device
Without that mpd would complain about the audio_output alsa settings:
ALSA lib conf.c:4705:(snd_config_expand) Unknown parameters CARD=SB,DEV=0
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM iec958:CARD=SB,DEV=0
Edit: This makes the mpd.conf user setting redundant/conflicting now.
However I think moving the user setting to systemd unit file makes sense. That way mpd is not startet with root privileges at all.
Sep 24 14:55:18 archy mpd[28759]: errno: Failed to open /etc/mpd.conf: Permission denied
OLD: -rw------- 1 root mpd 1672 Sep 23 23:34 mpd.conf
NEW: -rw-r--r-- 1 root mpd 1672 Sep 23 23:34 mpd.conf
$ chown root.root /etc/mpd.conf
This also works (mpd group not required).
And I also had to rm /var/log/mpd/mpd.log because of permissions again:
Sep 24 14:58:19 archy mpd[29313]: errno: failed to open log file "/var/log/mpd/mpd.log" (config line 5): Permission denied
I could have changed them but I preferred a new log. Everything works fine so far.
behaviour that's documented to work by upstream (the "user" and "group" options
are documented in both mpd.conf(5), as well as
/usr/share/doc/mpd/mpdconf.example which is referenced by /etc/mpd.conf). This
change in behaviour is not documented anywhere (unless you explicitly read the
PKGBUILD or the bugtracker). Both https://bugs.archlinux.org/task/42172 and
https://bugs.archlinux.org/task/44571 show that this results in error messages
that are not really helpful.
It also looks like the bug this ticket is about has not been reported upstream,
which means this undocumented divergence from upstream behaviour will forever be
part of the mpd package in Arch Linux.
If carrying patches breaking upstream behaviour indefinitely is now part of Arch
Linux' packaging rules, I'd encourage also patching the manpages and example
config files to clearly state which changes have been made, how they make the
package differ from the upstream version and how the desired effect (changing
the user and/or group MPD is running as) can be achieved on Arch.
Yes, not knowing a better word, I used "patching" - if there is a better one, I'd be glad to learn it.
I could report the bug upstream, if I knew how to reproduce it - the logs in this ticket contain messages about ALSA (one about dmix as well, others not...), assertion failures in some Pulseaudio file of MPD and OSS and there are apparently some permissions on the config file that need to match. Before I rip my configuration apart completely, I'd love to know how a configuration that made MPD not work a few months ago should look like (but in that case, you could just report it upstream yourselves because you already did all the work :-) ).