pulseaudio esd wrapper is not working with gnome

Bug #108577 reported by erm67 on 2007-04-21
42
Affects Status Importance Assigned to Milestone
pulseaudio (Ubuntu)
Medium
Unassigned

Bug Description

Binary package hint: pulseaudio-esound-compat
I am using Feisty Fawn release on i 386
I installed pulseaudio and the esound compat package, in the Gnome -> Preferences -> Sound -> Devices I have set all devices to pulseaudio and clicking test I can hear sound and the x11 bell plays in pulseaudio. The directory /tmp/.esd is created but

erm67@ubuntu:~$ esdplay /usr/share/sounds/login.wav
ALSA lib pcm_dmix.c:864:(snd_pcm_dmix_open) unable to open slave
Usage:program_name [address][:port]ermanno@ubuntu:~$

The most strange thing is that
ermanno@ubuntu:~$ esdplay -s 127.0.0.1 /usr/share/sounds/login.wav
works perfectly .......

If I enable "software sound mixing" in Gnome -> Preferences -> Sound -> Sound
I cannot hear sounds and the syslog is filled with
Apr 21 16:51:40 ubuntu pulseaudio[5897]: pid.c: daemon already running.
Apr 21 16:51:40 ubuntu pulseaudio[5897]: main.c: pa_pid_file_create() failed.
Apr 21 16:51:40 ubuntu pulseaudio[5901]: pid.c: daemon already running.
Apr 21 16:51:40 ubuntu pulseaudio[5901]: main.c: pa_pid_file_create() failed.

erm67 (erm67) on 2007-04-21
description: updated
erm67 (erm67) wrote :

I have run an strace
strace -o log esdplay /usr/share/sounds/login.wav
and it shows that esdplay looks for the socket in /tmp/.esd-1000 and of course can not find it
access("/tmp/.esd-1000/socket", R_OK|W_OK) = -1 ENOENT (No such file or directory)

and indeed
ermanno@ubuntu:~$ cd /tmp
ermanno@ubuntu:/tmp$ ln -s .esd .esd-1000
esdplay /usr/share/sounds/login.wav

works like a charm

Matteo Z (matteozandi) wrote :

I experienced the very same bug, as erm67 suggested a link is enough as workaround, so I added to my .bashrc

if [ ! -e /tmp/.esd-1000 ]; then
        ln -s /tmp/.esd /tmp/.esd-1000
fi

Matteo

Marc MERLIN (marc-soft) wrote :

I hate to say me too, but me too.
This is doing quite a dis-service to the pulseaudio people. My first reaction was "what is this piece of shit that is preventing my sound from working, and that I have to kill every time something respawns it".
Turns out, it was apparently misbuilt, which can happen, but it's now been in that state for 4 months when it's totally broken as shipped.

Is there any way to get it fixed?

Changed in pulseaudio:
status: New → Confirmed
Marc MERLIN (marc-soft) wrote :

Just to make my previous comment more clear, installing pulseaudio causes all alsa sound to stop working when something triggers its launching, apparently by trying to use esd.

In other words, a newly installed system with pulseaudio installed soon stops to output sound and fuser points to pulseaudio as the culprit, then causing the user (I'm not the first from some searches on the web) to conclude that pulseaudio is something that prevents sound from working and should be uninstalled.

In the meantime, however, ln -s /tmp/.esd /tmp/.esd-`id -u` took care of it for me

Daniel T Chen (crimsun) wrote :

Fixed in 0.9.7-3ubuntu2 (hardy).

Changed in pulseaudio:
importance: Undecided → Medium
status: Confirmed → Fix Released
Thomas Templin (coastgnu) wrote :

0.9.7-3ubuntu2 didn't change error messages:

Security Events
=-=-=-=-=-=-=-=
Nov 29 21:21:25 bronto pulseaudio[25553]: main.c: pa_pid_file_create() failed.

---

$ apt-cache policy pulseaudio
pulseaudio:
  Installed:0.9.7-3ubuntu2

---

$ ls -alr /tmp/.esd-1000/
insgesamt 20
srwxrwxrwx 1 templin templin 0 2007-11-29 19:50 socket
drwxrwxrwt 18 root root 16384 2007-11-29 22:10 ..
drwx------ 2 templin templin 4096 2007-11-29 19:50 .

Thomas Templin (coastgnu) wrote :

Pardon me, forgot to post a part of my syslog message

System Events
=-=-=-=-=-=-=
Nov 29 21:21:25 bronto pulseaudio[25553]: pid.c: Daemon already running.

Jan Claeys (janc) wrote :

For the people who see problems: are you running PulseAudio as a system-wide daemon or as a session-daemon? Running PulseAudio as a system-wide daemon is NOT recomended, unless you REALLY need it (I think LTSP might need it?). In every other case, try running it as a session daemon.

And did you make any configuration changes?
If yes, to which configuration files did you change/add what?

Issue evident in Hardy Heron 8.04 too.

Hi, I have a new clean install of 8.04 i.e. I have not consciously installed pulseaudio (actually I do not even know what it is) and have not installed any other software. I get this same error written to syslog repeatedly too.

To the previous respondent, I believe this answers your question regarding changes to config files - I made none and this is happening by default.

I have the following sound hardware (from lspci):

Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)

My syslog is attached.

I am running the latest pulseaudio 0.9.8-1ubuntu2 and have a very similar problem, except now instead of my esd clients looking for /tmp/.esd-1000/socket and not finding it, it now looks for /tmp/.esd/socket and of course doesn't find it, because pulseaudio is now creating /tmp/.esd-1000/socket instead of /tmp/.esd/socket. Again in this case, the link seems to solve the problem, but once again there seems to be a miscommunication between where pulseaudio creates the esd socket and where the esd clients think it should be. It would seem now that the esd clients should probably be rebuilt to reflect the change in pulseaudio.

Kow (kow) wrote :

Same problem here. Obviously Daniel's fix works for where clients in gutsy are looking for .esd but something else (another package) swapped the targets around (ie from .esd to .esd-1000 and vice versa) between gutsy and hardy. Now this bug is fixed in gutsy but returned in hardy. :-/ This is just a guess but it appears the root cause of my sound issues.

I found a better fix for this problem in Hardy than creating a link,
especially since I couldn't get the link to be created early enough to
play the Gnome startup sound. For any Hardy user who is having this
problem, try changing the line in /etc/pulse/default.pa that says:

load-module module-protocol-esound-unix

so that it says:

load-module module-protocol-esound-unix socket=/tmp/.esd/socket

This at least provides a temporary fix for the problem until a fix is
officially released for Hardy. A big thank-you goes out to the people in
the #pulseaudio IRC channel for this fix.

Harvey Muller (hlmuller) wrote :

Lorenzo,

Thanks for posting that. That resolved my sound issue also. I wasn't getting sound at startup, or at login. I was also experiencing the same issue described in https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/175028.

Now sound is back to normal, and I'm not getting all the related error messages identified in the other bug.

I'm currently testing Hardy Alpha 1 Desktop amd64 based on the 20071218 daily.

Harvey

Jaakan Shorter (jaakanshorter) wrote :

making the change to

load-module module-esound-protocol-unix socket=/tmp/.esd/socket

fixed the log flooding ( only post login ) and missing startup / shutdown sounds for me + other system event sounds too.

Matthew Gregg (mcg) wrote :

Adding, "load-module module-esound-protocol-unix socket=/tmp/.esd/socket" fixed sound for me until a second user logged in, then my logs are filled with:

Jan 1 15:06:25 dufus pulseaudio[14616]: main.c: Module load failed.
Jan 1 15:06:25 dufus pulseaudio[14616]: main.c: failed to initialize daemon.
Jan 1 15:06:26 dufus pulseaudio[14622]: main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
Jan 1 15:06:26 dufus pulseaudio[14622]: main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
Jan 1 15:06:26 dufus pulseaudio[14622]: module-protocol-stub.c: Failed to create socket directory '/tmp/.esd/socket': Operation not permitted
Jan 1 15:06:26 dufus pulseaudio[14622]: module.c: Failed to load module "module-esound-protocol-unix" (argument: "socket=/tmp/.esd/socket"): initialization failed.

### Load several protocols
#load-module module-esound-protocol-unix
load-module module-protocol-esound-unix socket=/tmp/.esd/socket
load-module module-native-protocol-unix

existed already (hardy)

still:
hc@santarosa:~$ sudo tail -f /var/log/messages
Jan 6 09:32:26 santarosa pulseaudio[1000]: main.c: We are not in group 'pulse-rt' and PolicyKit refuse to grant us priviliges. Dropping SUID again.
Jan 6 09:32:26 santarosa pulseaudio[1000]: main.c: For enabling real-time scheduling please acquire the appropriate PolicyKit priviliges, or become a member of 'pulse-rt', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user.
Jan 6 09:32:26 santarosa pulseaudio[1005]: main.c: Called SUID root and real-time/high-priority scheduling was requested in the configuration. However, we lack the necessary priviliges:
Jan 6 09:32:26 santarosa pulseaudio[1005]: main.c: We are not in group 'pulse-rt' and PolicyKit refuse to grant us priviliges. Dropping SUID again.
Jan 6 09:32:26 santarosa pulseaudio[1005]: main.c: For enabling real-time scheduling please acquire the appropriate PolicyKit priviliges, or become a member of 'pulse-rt', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user.
Jan 6 09:32:27 santarosa pulseaudio[1011]: main.c: Called SUID root and real-time/high-priority scheduling was requested in the configuration. However, we lack the necessary priviliges:
Jan 6 09:32:27 santarosa pulseaudio[1011]: main.c: We are not in group 'pulse-rt' and PolicyKit refuse to grant us priviliges. Dropping SUID again.
Jan 6 09:32:27 santarosa pulseaudio[1011]: main.c: For enabling real-time scheduling please acquire the appropriate PolicyKit priviliges, or become a member of 'pulse-rt', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user.
Jan 6 09:32:27 santarosa pulseaudio[1011]: main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
Jan 6 09:32:27 santarosa pulseaudio[1011]: main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted

Khorne (szczygiel-piotr) wrote :

I think that the problem remains not corrected. After update i still have those msgs in syslog and user.log:
Jan 8 11:49:22 blacktosh pulseaudio[12643]: pid.c: Daemon already running.
Jan 8 11:49:22 blacktosh pulseaudio[12643]: main.c: pa_pid_file_create() failed.

Kow (kow) wrote :

This bug is not fixed. the ESD socket is being setup in /tmp/.esd and strace esdplay <any sound file that works> shows it is looking for /tmp/.esd-1000. I verified this with 2 fresh hardy alpha 3 installs + all updates on amd64. I dont think architecture will affect this issue.

Kow (kow) wrote :

I'm still fixing it via editing default.pa and having it use /tmp/.esd-1000. It doesn't appear that any frontend is looking for /tmp/.esd. I would say a good temporary solution would be to symlink the two until we figure out why .esd-1000 was chosen in the first place for the esd wrapper (maybe there is a good reason?) I'm guessing it may have to do with those who want pulseaudio AND esd installed at the same time (esd socket would be in /tmp/.esd and pulseaudio esd wrapper socket in /tmp/.esd-1000).

It seems to work now in Hardy as of the last 2 updates of esd-clients. I
had originally fixed the problem by forcing pulseaudio to create the
socket in the place where esd clients look for it, but then esd-clients
was updated I think about 2 weeks ago and in order to get my gnome
sounds working again I had to take my socket path out of default.pa.
Since then everything seems to work perfectly. Note, however, that I
haven't tested this with multiple users at this time.

> /tmp/.esd. I would say a good temporary solution would be to symlink the
> two until we figure out why .esd-1000 was chosen in the first place for
> the esd wrapper (maybe there is a good reason?) I'm guessing it may have
> to do with those who want pulseaudio AND esd installed at the same time

Actually it has more to do with multiple users being able to run
pulseaudio or esd. The 1000 happens to be your user ID on the system.
The next user account you create will have the ID 1001, and if this user
is in the correct groups and runs pulseaudio, his/her socket will be
at /tmp/esd-1001/socket. This way, both users can be logged onto the
system and have pulse or esd running at the same time.

mdg583 (mdg583) wrote :

This is pretty weird - I have debian unstable (sid), and I had the same issue, with a similar strace report. But, mine was looking for /tmp/.esd , and my /tmp directory had a /tmp/.esd-1000. So I made a link .esd to point to .esd-1000, rather than the other way around.

Murz (murznn) wrote :

I have debian testing (lenny), and I had the same issue, with a similar strace report.

Aug 19 11:14:36 srv pulseaudio[4745]: main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
Aug 19 11:14:36 srv pulseaudio[4745]: main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
Aug 19 11:14:36 srv pulseaudio[4745]: module-protocol-stub.c: Failed to create socket directory '/tmp/.esd/socket': Operation not permitted
Aug 19 11:14:36 srv pulseaudio[4745]: module.c: Failed to load module "module-esound-protocol-unix" (argument: "socket="/tmp/.esd/socket""): initialization failed.
Aug 19 11:14:36 srv pulseaudio[4745]: main.c: Module load failed.
Aug 19 11:14:36 srv pulseaudio[4745]: main.c: Failed to initialize daemon.

/tmp/.esd/socket file is exists in this folder.

Pulseaudio version 0.9.10-2

arcadepro (arcadepro) wrote :

Recently encountered this myself on Hardy. Possibly as a result of running the Pulseaudio device chooser.
- I have sound on boot up (at the GDM login).
 - The Gnome login sounds do not play. No sounds through the Gnome sound applet ever play.
- With the Output set to Autodetect/ALSA/OSS in Sound Preferences my audio works apart from the gnome related system sounds.

pulseaudio -vv returns
...
I: module.c: Loaded "module-hal-detect" (index: #2; argument: "").
D: cli-command.c: Checking for existance of '/usr/lib/pulse-0.9/modules/module-esound-protocol-unix.so': success
E: module.c: Failed to open module "module-protocol-esound-unix": module-protocol-esound-unix.so: cannot open shared object file: No such file or directory
E: main.c: Module load failed.
E: main.c: Failed to initialize daemon.
I: module.c: Unloading "module-alsa-sink" (index: #0).
D: module-alsa-sink.c: Thread shutting down
I: sink.c: Freeing sink 0 "alsa_output.pci_1102_4_sound_card_0_alsa_playback_0"
I: source.c: Freeing source 0 "alsa_output.pci_1102_4_sound_card_0_alsa_playback_0.monitor"
I: module.c: Unloaded "module-alsa-sink" (index: #0).
I: module.c: Unloading "module-alsa-source" (index: #1).
D: module-alsa-source.c: Thread shutting down
I: source.c: Freeing source 1 "alsa_input.pci_1102_4_sound_card_0_alsa_capture_0"
I: module.c: Unloaded "module-alsa-source" (index: #1).
I: module.c: Unloading "module-hal-detect" (index: #2).
D: module-hal-detect.c: dbus: interface=org.freedesktop.DBus, path=/org/freedesktop/DBus, member=NameAcquired
D: module-hal-detect.c: dbus: interface=org.freedesktop.DBus.Local, path=/org/freedesktop/DBus/Local, member=Disconnected
I: module.c: Unloaded "module-hal-detect" (index: #2).
I: main.c: Daemon terminated.

Selecting Pulseaudio Server in Sound Preferences and clicking 'test' results in the following error in a gui dialog:

"audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! gconfaudiosink: Failed to connect: Connection refused."

strace of an attempt to execute 'pulseaudio' is here: http://pastebin.com/m37bba89c

I've tried the above fixes to no avail. Is there a way to either totally re-configure or re-install everything audio related? My audio was fine on a fresh install, but something has broken it.

I'd appreciate any help as I doubt an in place upgrade to Intrepid would fix what seems to be a configuration/permissions issue.

arcadepro (arcadepro) wrote :

Small update.

- Removed all config files from home directories.
- Re-installed esdcompat from the Hardy repository.
- Added: 'load-module module-esound-protocol-unix socket=/tmp/.esd-1000/socket' to default.pa

This stopped the errors from the gnome applet and the 'Failed to open module "module-protocol-esound-unix"' errors.
Why this did not work before I am not sure. Residual conflicting config files perhaps.
(There is an inconsistency there by the way. The module name you need to invoke is different to the filename. This causes some confusion)

Sound was still silent from EsounD sources at this point but errors had ceased and the pulseaudio daemon was now running.
(pulseaudio -v)

However, on running 'pactl list' I discovered that EsounD is mapped to the following.

*** Sample #1 ***
Name: esound.gnome-2/logout
Volume: 0: 100% 1: 100%
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right<---
Duration: 1.8s
Size: 310.1 KiB
Lazy: no
Filename: n/a

I opened 'alsamixer' and set PCM Front to 100, it was currently on 0.
Device is an Audigy 2 Pro (w/box) using the standard driver from a clean Hardy install.

Sound returned at this point.

Incidentally this also cured missing sounds in Adobe Flash Player. (AMD64 using nspluginwrapper in Firefox 64).

'No sound in flash ubuntu' has an insane number of hits on google. I'm not saying this is THE fix but if someone has exhausted all other avenues then simply increasing PCM Front seems worth a shot if the pulseaudio daemon is booting without error.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Related questions