Subject: Bug#384: Sound stopped working on Linux X2Goclient, or: Lookin' For Cookie In All The Wrong Places

From: Stefan Baur <[email-masked]>
Date: Mon, 30 Dec 2013 01:10:40 +0100

package: x2goclient
severity: important
version:4.0.1.2

With X2Goclient 4.0.1.2, sound stopped working on Linux clients. Windows 
clients were unaffected.

Manually copying over the .pulse-cookie file while the session was 
running fixed the issue.
Thanks to sunweaver (Mike#1) and dowdle on IRC, enough info was gathered 
that I could put two and two together as to what went wrong.
Initial theory was that a patch was added for pulseaudio 4 (which keeps 
the .pulse-cookie file in a different location), but said patch wouldn't 
check for the version of pulseaudio actually installed on the client.  
Debian Wheezy shipping with a 2.x release of pulseaudio, the location to 
copy the file from wouldn't exist, which would explain the behavior we'd 
seen.

Close, but no cookie. (Pun intended.)

stracing x2goclient shows this:

username@mycutelittletestmachine:~/.config/pulse$ grep -i cookie stracelog
read(7, "\0\0\0\4\300\250\0\264\0\0010\0\22MIT-MAGIC-COOKIE-1\0"..., 
4096) = 317
writev(6, [{"l\0\v\0\0\0\22\0\20\0\0\0", 12}, {"", 0}, 
{"MIT-MAGIC-COOKIE-1", 18}, {"\0\0", 2}, 
{"=[\272)\364\376\331l\327\242\365\307\302\2\17J", 16}, {"", 0}], 6) = 48
stat64("/home/username.config/pulse/cookie", 0xbfacb180) = -1 ENOENT (No 
such file or directory)
stat64("/home/username.pulse-cookie", 0xbfacb180) = -1 ENOENT (No such 
file or directory)

So while it DOES attempt to check both possible locations, it actually 
checks in /home/username.config/pulse/cookie and 
/home/username.pulse-cookie while it should check in 
/home/username/.config/pulse/cookie and /home/username/.pulse-cookie - 
the slash between username and directory is missing.

Please fix ASAP.

-Stefan
PS: If anyone actually remembers the game title the second part of the 
subject is referencing: Complimentary cookie for you!