Public bug reported:

I'm using Ubuntu Hardy and have pulseaudio instead of esd installed.
Many apps (like xchat-gnome) still use the old esd libraries, and so i have to 
use the compatibility layer.
When starting xchat-gnome it spends lot of time, about a minute, trying to 
connect to esd - without success.
During that time the program seems frozen.

I took a look at the strace output during that time and i recognized:
access("/tmp/.esd/socket", R_OK|W_OK)   = -1 ENOENT (No such file or directory)

It seems like pulseaudio creates the compatibility sockets in places
like /tmp/.esd-$UID but does not link them to /tmp/.esd, which seems
like a good decission for multi-user environments, so i don't think it
would be good to change this behaviour.

But i found another workaround:
If you look at util.c (in the esound sources), you can see, that it composes 
the dirname to look for the socket of /tmp/.esd and the content of the 
environment variable $AUDIODEV
So if you set $AUDIODEV to "-$UID" it can find the socket and does not waste 
one minute trying and failing to connect.

I tried: 
AUDIODEV="-$UID" xchat-gnome
and everything went as expected, the program was no longer frozen after 
starting.

So to make things work for programs still using old esd-libraries in
combination with pulseaudio AUDIODEV should be exported in some place it
would be set for every program in the users session.

** Affects: pulseaudio (Ubuntu)
     Importance: Undecided
         Status: New

** Description changed:

  I'm using Ubuntu Hardy and have pulseaudio instead of esd installed.
  Many apps (like xchat-gnome) still use the old esd libraries, and so i have 
to use the compatibility layer.
  When starting xchat-gnome it spends lot of time, about a minute, trying to 
connect to esd - without success.
  During that time the program seems frozen.
  
  I took a look at the strace output during that time and i recognized:
  access("/tmp/.esd/socket", R_OK|W_OK)   = -1 ENOENT (No such file or 
directory)
  
  It seems like pulseaudio creates the compatibility sockets in places
  like /tmp/.esd-$UID but does not link them to /tmp/.esd, which seems
  like a good decission for multi-user environments, so i don't think it
  would be good to change this behaviour.
  
  But i found another workaround:
- If you look at util.c, you can see, that it composes the dirname to look for 
the socket of /tmp/.esd and the content of the environment variable $AUDIODEV
+ If you look at util.c (in the esound sources), you can see, that it composes 
the dirname to look for the socket of /tmp/.esd and the content of the 
environment variable $AUDIODEV
  So if you set $AUDIODEV to "-$UID" it can find the socket and does not waste 
one minute trying and failing to connect.
  
  I tried: 
- AUDIODEV="-$UID" gnome-xchat
+ AUDIODEV="-$UID" xchat-gnome
  and everything went as expected, the program was no longer frozen after 
starting.
  
  So to make things work for programs still using old esd-libraries in
  combination with pulseaudio AUDIODEV should be exported in some place it
  would be set for every program in the users session.

-- 
AUDIODEV should be exported when using pulseaudio
https://bugs.launchpad.net/bugs/177072
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to