Re: Bonobo Activation Server goes to sleep



Shmyrev wrote:

Well, I think that problem is here (from startx.log) and in esd. Is it the place where you kill X-server?

Activate 'OAFIID:GNOME_SettingsDaemon'

That's the place, or more specifically, the ^M underneath it!

Actually, there is strange code in gnome-settings-daemon from control-center which works with sound, may be, it works with some errors.

Could you send me:

1. Backtrace from gnome-settings-daemon

Unfortunately, I can't seem to. Every time I access the command line in order to try to obtain the backtrace, gnome-settings-daemon does not appear in a ps ax list, and the next startx.log I generated did not even include any line of output comparable to "Activate 'OAFIID:GNOME_SettingsDaemon'". The last lines of output it ran before it hung were actually


** (process:4195): WARNING **: Server register. 'OAFIID:Bonobo_CosNaming_NamingContext' : 0x80a5c20

** (process:4195): WARNING **: Update registry 0x8089798

2. Results when gconf key /desktop/gnome/sound/enable_esd set to FALSE, but esd is started manually.


Results from starting up GNOME with gconf key /desktop/gnome/sound/enable_esd set to FALSE are available as:

http://www.users.bigpond.com/geoffreyhacker/Logs/startx2.log.

In order to obtain results from starting esd manually, I utilised the following steps:

1. Open a terminal window.

2. Run esd.

3. Open the Sound Preferences dialog box.

4. Play a sound. (I chose gnibbles/bonus.wav.) The sound will play fine.

5. Play another sound. (I chose gnibbles/appear.wav.) The Sound Preferences dialog box will hang.

6. Ctrl+c out of esd in the terminal window. The Sound Preferences dialog box will come back to normal, but of course there will also be no sound.

The results of doing this with esd in debug mode are striking. The point where esd is hanging is where it is trying to close the esd_audio_fd file. In the log file, this occurs between the statements "about to execute close command" and "close command executed". When esd hangs, the "about to execute close command" line gets printed, but the "close command executed" line does NOT get printed until I ctrl+c out of esd. The log file is available as:

http://www.users.bigpond.com/geoffreyhacker/Logs/esd.log

The close() command seems to be a perfectly ordinary Linux system call. Good God, does that mean I have to recompile the kernel?! =0


3. Backtrace from command $esdctl serverinfo (run it in gdb, first gdb esdctl, then gdb command 'r serverinfo', then ^c and bt).



I don't entirely understand these instructions you gave me. First I did an esdctl serverinfo command after esd had hung, so this command hang too. After I put it into the background and did a gdb esdctl and backtrace, it said, "No stack."

Running esdctl serverinfo in a terminal window with esd running in a separate terminal window of its own (before it has had the chance to hang), reveals the following output:

server version = 0
server format  = 0x00000021
server rate    = 44100

I noticed that this caused esd to terminate in the other window. After starting it back up again, I ran "gdb esdctl". This produced:

GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...
(gdb)

I then typed "r serverinfo". This produced:

Starting program: /home/geoff/garnome/bin/esdctl serverinfo
[New Thread 1074971264 (LWP 4956)]
server version = 0
server format  = 0x00000021
server rate    = 44100

Program exited normally.
(gdb)

Finally, I typed in "backtrace." This produced:

No stack.
(gdb)

I do not know how to get a stack out of the backtrace command here, as every time I run esdctl serverinfo in one form or another, it inevitables terminates the execution of esd in the other window, and this seems to remove the stack as well.

Finally, I note that whenever esd hangs, if I move it to the background and then back to the foreground again, it resumes normally, and the sound it was trying to play at the time plays normally! When I try to close the Sound Properties dialog box while esd is hung, this will still hang the Sound Properties dialog box, but once I move esd to the background and then the foreground again, the Sound Properties dialog box exits normally as well!

So SOMETHING weird's going on...

Geoff




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]