Todd Zullinger writes:
Sam Varshavchik wrote:Now, I've figured out that if: after starting X in the old account, I look at the process table, I see a crapload of processes hanging on a connect to /tmp/.esd/socket. If I kill the esd process, the desktop comes out. Panels and a whole of other stuff is still screwed up, but at least the desktop comes up. In a freshly-created account, the desktop comes up fine. Now, if I take the existing account, rename the home directory, create a blank new home directory in its place, log in, and try to start X, it still hangs in esd!Hmmm. That sounds like this bug: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=238680
That's a related problem. Problem #1 was my esd barfing. Problem #2 is that it takes down the entire desktop with it.
Looks like I fixed it by nuking $HOME/.esd_auth, that seemed to have fixed it, for some reason.
There are two problems here: 1) esd barfing, for some reason 2) When esd barfs, it takes the entire desktop with itAs far as #1 goes, that should be resolved, of course, but even if esd barfs it should NOT take the whole desktop down with it!
The problem is with the esound library. It opens a connections to the esound socket without any timeout whatsoever. If esd goes toes-up, everyone will wait forever, to connect to esd.
The correct solution is to employ a reasonable timeout, say 10 seconds, and if the connection does not go through, give up and fall back to plan B.
Attachment:
pgpfYXc1sAgef.pgp
Description: PGP signature