Bug 375701

Summary: Desktop is "sluggish" due to missing esound
Product: [openSUSE] openSUSE 11.0 Reporter: Magnus Boman <captain.magnus>
Component: GNOMEAssignee: Rodrigo Moya <rodrigo>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Critical    
Priority: P5 - None CC: casualprogrammer, forgotten_y7f055FA1m, security-team, zaitor
Version: Factory   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard: gnome-showstopper
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 359441    
Attachments: PulseAudio preferences
Patch

Description Magnus Boman 2008-04-01 06:23:43 UTC
There are some serious delays with the ComboBox* widgets on 64bit.
The same delay can also be seen with tooltip.

To test this, simply click on any ComboBox* widget. It'll take a while before they actually popup. Same when they are being closed.

One way of testing the tooltip delays are by opening the application browser, position the mouse over an application, wait for the tooltip to show up, then move the mouse to another app. There is a (too long) delay before the new app get's "selected".

These delays is making the Desktop feel very sluggish.

I don't see these issues on my laptop which is running 32bit.
Comment 1 Magnus Boman 2008-04-02 09:34:51 UTC
*** Bug 375861 has been marked as a duplicate of this bug. ***
Comment 2 Magnus Boman 2008-04-02 09:38:26 UTC
Please look at the Dupe from 375861 as well for Desktop slowness.

After I install the packages below, the Desktop starts being responsive again (and removing them does not make it slow again). I reproduced this with a brand new install on the same machine. Before installing these packages on the new install, I run SuSEconfig and ldconfig to make sure it had nothing to do with the issue.

quicksynergy
quicksynergy-lang
synergy
cvs
cvsps
git
git-arch
git-core
git-cvs
git-email
git-svn
gitk
libapr-util1
libapr1
subversion
subversion-perl
tla
gnome-common
intltool
gettext-tools
autoconf
automake
Mesa-devel
alsa-devel
atk-devel
audiofile-devel
cairo-devel
esound
fontconfig-devel
freetype2-devel
gail-devel
gconf2-devel
glib2-devel
glitz-devel
gnome-desktop-devel
gnome-keyring-devel
gnome-vfs2-devel
gtk2-devel
hal-devel
indent
libart_lgpl-devel
libavahi-devel
libavahi-glib-devel
libblkid-devel
libbonobo-devel
libbonoboui-devel
libcom_err-devel
libesd-devel
libexpat-devel
libext2fs-devel
libgnome-devel
libgnomecanvas-devel
libgnomeui-devel
libgweather-devel
libidl-devel
libjpeg-devel
libopenssl-devel
libpng-devel
libstdc++-devel
libstdc++43-devel
libusb-devel
libuuid-devel
libxml2-devel
metacity-devel
ncurses-devel
orbit2-devel
pango-devel
pcre-devel
popt-devel
readline-devel
startup-notification-devel
tack
xorg-x11-devel
xorg-x11-fonts-devel
xorg-x11-libICE-devel
xorg-x11-libSM-devel
xorg-x11-libX11-devel
xorg-x11-libXau-devel
xorg-x11-libXdmcp-devel
xorg-x11-libXext-devel
xorg-x11-libXfixes-devel
xorg-x11-libXmu-devel
xorg-x11-libXp-devel
xorg-x11-libXpm-devel
xorg-x11-libXprintUtil-devel
xorg-x11-libXrender-devel
xorg-x11-libXt-devel
xorg-x11-libXv-devel
xorg-x11-libfontenc-devel
xorg-x11-libxcb-devel
xorg-x11-libxkbfile-devel
xorg-x11-proto-devel
xorg-x11-util-devel
xorg-x11-xtrans-devel
zlib-devel
libnotify-devel
libglade2-devel
Comment 3 Magnus Boman 2008-04-02 12:03:22 UTC
esound is the solution to this issue. As soon as that package is installed, everything works fine.

It does get a conflict when installing which could perhaps explain why it's not installed by default.

mblxsrv01:/media/disk/pub/distribution/SL-OSS-factory/inst-source/suse/x86_64 # rpm -i --nodeps esound-0.2.38-54.x86_64.rpm 
error: failed to stat /home/mboman/.gvfs: Permission denied
	file /usr/bin/esd from install of esound-0.2.38-54 conflicts with file from package pulseaudio-esound-compat-0.9.9-9
mblxsrv01:/media/disk/pub/distribution/SL-OSS-factory/inst-source/suse/x86_64 # rpm -i --nodeps --force esound-0.2.38-54.x86_64.rpm 
Comment 4 Magnus Boman 2008-04-02 12:44:59 UTC
32bit is affected as well and same solution applies.

I wont spam this bug report any more now :-)
Comment 5 Rodrigo Moya 2008-04-11 14:53:47 UTC
pulseaudio-esound-compat now obsoletes esound, so we should make sure that gets installed by default
Comment 6 Rodrigo Moya 2008-04-11 14:55:37 UTC
Well, it is installed by default, so this should be fixed now with latest submitted pulseaudio. Reopen if you still see it
Comment 7 Magnus Boman 2008-04-11 22:11:05 UTC
*** Bug 374617 has been marked as a duplicate of this bug. ***
Comment 8 Magnus Boman 2008-04-18 04:57:09 UTC
After an upgrade, esound was uninstalled and pulseaudio-esound-compat was installed. 
After that it became sluggish again.
Comment 9 Rodrigo Moya 2008-04-18 10:17:10 UTC
And if you reinstall esound it goes back to normal ? And, without esound installed, what does the Modules tab in the PulseAudio manager ('Manager' entry from the PA systray icon popup menu) show as loaded modules? Is the module-esound-protocol-unix in the list?

If it's not, be sure the following lines:

### Load several protocols
load-module module-esound-protocol-unix
load-module module-native-protocol-unix

are uncommented on the /etc/pulse/default.pa file
Comment 10 Magnus Boman 2008-04-19 23:51:24 UTC
*** Bug 381683 has been marked as a duplicate of this bug. ***
Comment 11 Bjørn Lie 2008-04-20 00:03:52 UTC
I have the exact same behaviour as Magnus B
Comment 12 Bjørn Lie 2008-04-20 01:56:48 UTC
module-esound-protocol-unix is in list 

and

-----------------
### Load several protocols
load-module module-esound-protocol-unix
load-module module-native-protocol-unix

are uncommented on the /etc/pulse/default.pa file
--------------------------------

are as wanted 

---------

on a sidenote, soundperformance is horrid under pulseaudio. Playing a mp3 and changing active window makes sound skip, changing a setting in pulseaudio (while playing mp3) sends a jolt/buzz to my speakers.
Comment 13 Magnus Boman 2008-04-20 03:02:17 UTC
I tried all the esd workarounds from this url (without success): http://pulseaudio.org/wiki/PerfectSetup
Comment 14 Magnus Boman 2008-04-20 04:05:50 UTC
Ok, found it.
Seems by default, PA is configured to not "Enable network access to local devices". After enabling it, everything runs just fine.

This setting is under "Configure local sound server"
Comment 15 Magnus Boman 2008-04-20 04:09:25 UTC
*** Bug 372905 has been marked as a duplicate of this bug. ***
Comment 16 Forgotten User y7f055FA1m 2008-04-22 19:12:03 UTC
Just tested this on Beta 1 Live CD, the issue is still there.
Comment 17 Bjørn Lie 2008-04-22 22:40:59 UTC
I can confirm Magnus Bomans workaround.
Comment 18 Rodrigo Moya 2008-04-23 10:46:58 UTC
I've just submitted the work around (enabling remote access) so that beta1+ installations are not sluggish, but keeping this open until we get to the correct fix
Comment 19 Rodrigo Moya 2008-04-23 10:54:35 UTC
Upstream bug: http://pulseaudio.org/ticket/281
Comment 21 Casual J. Programmer 2008-04-28 11:38:14 UTC
*** Bug 384307 has been marked as a duplicate of this bug. ***
Comment 22 Rodrigo Moya 2008-04-28 14:22:12 UTC
Created attachment 210898 [details]
PulseAudio preferences
Comment 23 Rodrigo Moya 2008-04-28 14:24:02 UTC
The IP port will be open, but the user would need to enable the 2 other settings below this one (as shown in the previous screenshot) to make access really fully open, so I don't see it as a major security problem, since you have to explicitly disable authentication to make it open for every one.

Of course, pulseaudio shouldn't need to have this enabled to work quick, so keeping this open.
Comment 24 Magnus Boman 2008-05-01 04:31:18 UTC
I can't find any commits for this, nor can I see that it was actually changed. The latest Beta2 LiveCD still have this issue.
Comment 25 Rodrigo Moya 2008-05-05 08:45:00 UTC
paprefs package is still in the queue because of security concerns. As for comment #23, it should be safe to open it by default, since remote connections would still need a password to connect to the local sound daemon.

So, security-team, what should we do?
Comment 26 Marcus Meissner 2008-05-05 13:41:51 UTC
No new open ports to the outside, even if password protected.

I think this is written somewhere as policy, just did not find it again.



Anyway, opening a remote port to fix a local bug is just ridiculous.

Find and fix the real bug instead.
Comment 27 Magnus Boman 2008-05-06 03:45:00 UTC
So... Played a bit more with this. All the PA documentation that I read states that it need /tmp/.esd-$UID created. But when I strace g-m-m, it only tries /tmp/.esd   It never appends my userid to that path.
If I rename .esd-1000 to .esd everything works fine. So question is why the -1000 is missing?

Relevant snip from the trace;

restart_syscall(<... resuming interrupted call ...>) = 1
read(3, "\10\0008\7\270\253\344\0@\0\0\0 \0 \2\0\0\0\0G\0\364\2G\0\f\0\20\1\1\2"..., 4096) = 96
read(3, 0x807a12c, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1210044371, 404175}, NULL) = 0
gettimeofday({1210044371, 404441}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=19, events=POLLIN}, {fd=20, events=POLLIN}, {fd=17, events=POLLIN|POLLPRI}, {fd=21, events=POLLIN}, {fd=18, events=POLLIN}], 15, 0) = 0
gettimeofday({1210044371, 404709}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=19, events=POLLIN}, {fd=20, events=POLLIN}, {fd=17, events=POLLIN|POLLPRI}, {fd=21, events=POLLIN}, {fd=18, events=POLLIN}], 15, 0) = 0
read(3, 0x807a12c, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1210044371, 405000}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=19, events=POLLIN}, {fd=20, events=POLLIN}, {fd=17, events=POLLIN|POLLPRI}, {fd=21, events=POLLIN}, {fd=18, events=POLLIN}], 15, 0) = 0
select(4, [3], [3], NULL, NULL)         = 1 (out [3])
writev(3, [{"5\20\4\0\364\0 \2\37\0 \2`\0\30\0\232\4\5\0\365\0 \2\364\0 \2+\0\0\0"..., 384}], 1) = 384
read(3, 0x807a12c, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
read(3, 0x807a12c, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1210044371, 406042}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN, revents=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=19, events=POLLIN}, {fd=20, events=POLLIN}, {fd=17, events=POLLIN|POLLPRI}, {fd=21, events=POLLIN}, {fd=18, events=POLLIN}], 15, 1333) = 1
read(3, "\7\1K\7\272\253\344\0@\0\0\0\3\0 \2\37\0 \2G\0\364\2G\0\f\0\20\1\2\2"..., 4096) = 128
read(3, 0x807a12c, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1210044371, 406750}, NULL) = 0
gettimeofday({1210044371, 406953}, NULL) = 0
gettimeofday({1210044371, 407011}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=19, events=POLLIN}, {fd=20, events=POLLIN}, {fd=17, events=POLLIN|POLLPRI}, {fd=21, events=POLLIN}, {fd=18, events=POLLIN}], 15, 0) = 0
gettimeofday({1210044371, 407260}, NULL) = 0
gettimeofday({1210044371, 407314}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=19, events=POLLIN}, {fd=20, events=POLLIN}, {fd=17, events=POLLIN|POLLPRI}, {fd=21, events=POLLIN}, {fd=18, events=POLLIN}], 15, 0) = 0
gettimeofday({1210044371, 407602}, NULL) = 0
gettimeofday({1210044371, 407658}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=19, events=POLLIN}, {fd=20, events=POLLIN}, {fd=17, events=POLLIN|POLLPRI}, {fd=21, events=POLLIN}, {fd=18, events=POLLIN}], 15, 0) = 0
access("/tmp/.esd/socket", R_OK|W_OK)   = -1 ENOENT (No such file or directory)
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 22
close(22)                               = 0
socket(PF_NETLINK, SOCK_RAW, 0)         = 22
bind(22, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(22, {sa_family=AF_NETLINK, pid=31468, groups=00000000}, [12]) = 0
time(NULL)                              = 1210044371
sendto(22, "\24\0\0\0\26\0\1\3\323\317\37H\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(22, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"8\0\0\0\24\0\2\0\323\317\37H\354z\0\0\2\10\200\376\1\0\0\0\10\0\1\0\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 172
recvmsg(22, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@\0\0\0\24\0\2\0\323\317\37H\354z\0\0\n\200\200\376\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 128
recvmsg(22, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0\323\317\37H\354z\0\0\0\0\0\0\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(22)                               = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 22
fcntl64(22, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(22, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ECONNREFUSED (Connection refused)
close(22)                               = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 22
fcntl64(22, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(22, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ECONNREFUSED (Connection refused)
close(22)                               = 0
open("/etc/resolv.conf", O_RDONLY)      = 22
fstat64(22, {st_mode=S_IFREG|0644, st_size=71, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb672d000
read(22, "# generated by NetworkManager, d"..., 4096) = 71
read(22, "", 4096)                      = 0
close(22)                               = 0
munmap(0xb672d000, 4096)                = 0
uname({sys="Linux", node="linux", ...}) = 0
open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 22
fcntl64(22, F_GETFD)                    = 0x1 (flags FD_CLOEXEC)
fstat64(22, {st_mode=S_IFREG|0644, st_size=670, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb672d000
read(22, "#\n# hosts         This file desc"..., 4096) = 670
close(22)                               = 0
munmap(0xb672d000, 4096)                = 0
open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 22
fstat64(22, {st_mode=S_IFREG|0644, st_size=670, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb672d000
read(22, "#\n# hosts         This file desc"..., 4096) = 670
close(22)                               = 0
munmap(0xb672d000, 4096)                = 0
open("/etc/gai.conf", O_RDONLY)         = 22
fstat64(22, {st_mode=S_IFREG|0644, st_size=2689, ...}) = 0
fstat64(22, {st_mode=S_IFREG|0644, st_size=2689, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb672d000
read(22, "# Configuration for getaddrinfo("..., 4096) = 2689
read(22, "", 4096)                      = 0
close(22)                               = 0
munmap(0xb672d000, 4096)                = 0
futex(0xb6d38ad0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 22
connect(22, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
getsockname(22, {sa_family=AF_INET6, sin6_port=htons(53420), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
connect(22, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0
connect(22, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
getsockname(22, {sa_family=AF_INET6, sin6_port=htons(37235), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
close(22)                               = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 22
fcntl64(22, F_SETFD, FD_CLOEXEC)        = 0
setsockopt(22, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
connect(22, {sa_family=AF_INET, sin_port=htons(16001), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Connection refused)
close(22)                               = 0
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 22
fcntl64(22, F_SETFD, FD_CLOEXEC)        = 0
setsockopt(22, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
connect(22, {sa_family=AF_INET6, sin6_port=htons(16001), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ECONNREFUSED (Connection refused)
close(22)                               = 0
open("/etc/esd.conf", O_RDONLY)         = -1 ENOENT (No such file or directory)
open("/home/mboman/.esd.conf", O_RDONLY) = -1 ENOENT (No such file or directory)
pipe([22, 23])                          = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6b3baf8) = 31718
waitpid(31718, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 31718
--- SIGCHLD (Child exited) @ 0 (0) ---
select(23, [22], NULL, NULL, {0, 100000}) = 0 (Timeout)
close(22)                               = 0
close(23)                               = 0
access("/tmp/.esd/socket", R_OK|W_OK)   = -1 ENOENT (No such file or directory)
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 22
close(22)                               = 0
socket(PF_NETLINK, SOCK_RAW, 0)         = 22
bind(22, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(22, {sa_family=AF_NETLINK, pid=31468, groups=00000000}, [12]) = 0
time(NULL)                              = 1210044371
sendto(22, "\24\0\0\0\26\0\1\3\323\317\37H\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(22, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"8\0\0\0\24\0\2\0\323\317\37H\354z\0\0\2\10\200\376\1\0\0\0\10\0\1\0\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 172
recvmsg(22, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@\0\0\0\24\0\2\0\323\317\37H\354z\0\0\n\200\200\376\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 128
recvmsg(22, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0\323\317\37H\354z\0\0\0\0\0\0\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(22)                               = 0
time(NULL)                              = 1210044371
stat64("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=71, ...}) = 0
open("/etc/resolv.conf", O_RDONLY)      = 22
fstat64(22, {st_mode=S_IFREG|0644, st_size=71, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb672d000
read(22, "# generated by NetworkManager, d"..., 4096) = 71
read(22, "", 4096)                      = 0
close(22)                               = 0
munmap(0xb672d000, 4096)                = 0
uname({sys="Linux", node="linux", ...}) = 0
open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 22
fstat64(22, {st_mode=S_IFREG|0644, st_size=670, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb672d000
read(22, "#\n# hosts         This file desc"..., 4096) = 670
close(22)                               = 0
munmap(0xb672d000, 4096)                = 0
open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 22
fstat64(22, {st_mode=S_IFREG|0644, st_size=670, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb672d000
read(22, "#\n# hosts         This file desc"..., 4096) = 670
close(22)                               = 0
munmap(0xb672d000, 4096)                = 0
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 22
connect(22, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
getsockname(22, {sa_family=AF_INET6, sin6_port=htons(33819), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
connect(22, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0
connect(22, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
getsockname(22, {sa_family=AF_INET6, sin6_port=htons(45688), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
close(22)                               = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 22
fcntl64(22, F_SETFD, FD_CLOEXEC)        = 0
setsockopt(22, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
connect(22, {sa_family=AF_INET, sin_port=htons(16001), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Connection refused)
close(22)                               = 0
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 22
fcntl64(22, F_SETFD, FD_CLOEXEC)        = 0
setsockopt(22, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
connect(22, {sa_family=AF_INET6, sin6_port=htons(16001), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ECONNREFUSED (Connection refused)
close(22)                               = 0
pipe([22, 23])                          = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6b3baf8) = 31722
waitpid(31722, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 31722
--- SIGCHLD (Child exited) @ 0 (0) ---
select(23, [22], NULL, NULL, {0, 100000}) = 0 (Timeout)
Comment 28 Magnus Boman 2008-05-06 04:28:59 UTC
Created attachment 212511 [details]
Patch

Here's what causes the issues; http://www.pulseaudio.org/changeset/1598

We need the attached patch (taken from Fedora 9's source rpm) for this to work properly.
Comment 29 Magnus Boman 2008-05-06 04:36:59 UTC
Or if we can't patch esound, add this;

mblxsrv01:/etc/pulse # diff -auN default.pa~ default.pa
--- default.pa~	2008-05-06 14:36:50.000000000 +1000
+++ default.pa	2008-05-06 14:36:50.000000000 +1000
@@ -47,7 +47,7 @@
 
 ### Load several protocols
 .ifexists module-esound-protocol-unix.so
-load-module module-esound-protocol-unix
+load-module module-esound-protocol-unix socket="/tmp/.esd/socket"
 .endif
 load-module module-native-protocol-unix
Comment 30 Rodrigo Moya 2008-05-06 10:44:01 UTC
We can't patch esound because we replace it with pulseaudio-compat-esound, so just added the patch to default.pa to pulseaudio and removed the paprefs submission
Comment 31 Magnus Boman 2008-05-09 06:03:29 UTC
We still use libesd0 which is what the patch would affect I presume.
Anyhow, this second fix will work for now, although I think we should look into patching esound for 11.1.
Also, I close the upstream bug.
Comment 32 Rodrigo Moya 2008-05-09 14:53:17 UTC
Test packages for esound with this patch will shortly be available at http://download.opensuse.org/repositories/home:/rodrigomoya/openSUSE_Factory
Comment 33 Rodrigo Moya 2008-05-09 14:53:42 UTC
Re-opening
Comment 34 Magnus Boman 2008-05-09 23:50:54 UTC
Fresh install from pre-Beta3 LiveCD. I reverted the default.pa to not use "socket="/tmp/.esd/socket", installed libesd0 then logout/login and it works perfectly.
We need the esound patch due to the way the LiveCD works. During the second stage, you're logged in as the default user "linux" with uid=1000. Once second stage has completed, you will login with your new user (which will get uid=1001). This new user is trying to access /tmp/.esd but is not allowed due to rights.
Also, if one runs nautilus as root, /tmp/.esd will end up with root:root ownership and the user can no longer use it.
The package is Comment#32 creates /tmp/.esd-$UID which is unique for each user.
Comment 35 Rodrigo Moya 2008-05-12 09:38:37 UTC
Ok, esound patch submitted then