GNOME Bugzilla – Bug 118077
Gnome-sound-recorder crashes
Last modified: 2004-12-22 21:47:04 UTC
After opening Gnome-sound-recorder and pressing on the record button to record a file, it crashes with : ** (gnome-sound-recorder:23838): WARNING **: FIXME: guard from double entry Steps to reproduce: 1. Open Gnome-Sound-Recorder 2. Press on record button Actuals Results: Program crashes with this message: ** (gnome-sound-recorder:23838): WARNING **: FIXME: guard from double entry Expected Results: Program would start recording input from microphone. Additional informations: Tried recording with audacity and that worked perfectly. I tried recording with Alsa, OSS and ESD set as the Default Audio Sink in Gstreamer-properties but none of them worked. Stack-Trace: GNU gdb 5.3 Copyright 2002 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 "i686-pc-linux-gnu"... (gdb) run Starting program: /usr/bin/gnome-sound-recorder [New Thread 16384 (LWP 23868)] INFO (23868: 0) Initializing GStreamer Core Library version 0.6.2 INFO (23868: 0) CPU features: (00000000) MMX SSE INFO (23868: 0) registry: loaded user_registry in 0.000265 seconds (/home/mayouty/.gstreamer/registry.xml) INFO (23868: 0) registry: loaded global_registry in 0.308588 seconds (/var/lib/cache/gstreamer-0.6/registry.xml) [New Thread 32769 (LWP 23869)] [New Thread 16386 (LWP 23870)] ** (gnome-sound-recorder:23870): WARNING **: FIXME: guard from double entry [New Thread 32771 (LWP 23871)] Program received signal SIGINT, Interrupt. [Switching to Thread 32771 (LWP 23871)] 0x40b97547 in poll () from /lib/libc.so.6 (gdb) thread apply all bt
+ Trace 38948
Thread 3 (Thread 16386 (LWP 23870))
Thread 1 (Thread 16384 (LWP 23868))
Is it possible that you could give the exact version of gnome-recorder you are using. There was another bug with the scheduler that was being used - and it was fixed in CVS before the 2.3.4 release (and should be in the 2.3.5 release).
Im using 2.3.5
Confirming. The bug can be simulated on gnome-sound-recorder 2.3.5 .
This seems to be a bug in ORBit2/linc2. Unfortunately, I wasn't able to generate a correct stacktrace. Adding michael, since he asked me for a stacktrace..
The problem is - your stack trace is very nice (and interesting) - and shows that libbonoboui is being used from multiple threads [ which is not in fact designed to be thread-safe, but seems to be behaving OK in this instance amusingly ;-] The problem is your stack trace doesn't show the crash - for some reason you got a SIGINT there. Of course - there could be a deadlock; I can believe that Thread 3 might be holding a lock Thread 1 wants but ... [ of course - this wouldn't have shown in Gnome 2.2 - but then it would have been far more dangerous / less thread-safe so ... ]. Are you sure you see a crash not a deadlock, and/or can you get a better trace? Thanks.
With 2.3.7, the behaviour has changed: The program just locks up and doesn't respond to anything, but it doesn't crash or segfault as indicated by the new stack trace. STACKTRACE: Script started on Thu Aug 14 08:23:23 2003 GNU gdb 5.3 Copyright 2002 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 "i686-pc-linux-gnu"... (gdb) run Starting program: /usr/bin/gnome-sound-recorder [New Thread 16384 (LWP 19596)] INFO (19596: 0) Initializing GStream er Core Library version 0.6.2 INFO (19596: 0) CPU features: (00000 000) MMX SSE INFO (19596: 0) registry: loaded use r_registry in 0.000275 seconds (/home/mayouty/.gstreamer/registry.xml) INFO (19596: 0) registry: loaded glo bal_registry in 0.407099 seconds (/var/lib/cache/gstreamer-0.6/registry.xml) [New Thread 32769 (LWP 19597)] [New Thread 16386 (LWP 19598)] ** (gnome-sound-recorder:19598): WARNING **: FIXME: guard from double entry [New Thread 32771 (LWP 19599)] Program received signal SIGTSTP, Stopped (user).
+ Trace 39580
Thread 32771 (LWP 19599)
Another behaviour: After the program locks up and I get the " NOT RESPONDING DIALOG, DO YOU WANT TO KILL", and I accept, the program exits normally as indicated by this stack trace. STACKTRACE: mayouty@syKr0n bin $ gdb gnome-sound-recorder GNU gdb 5.3 Copyright 2002 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 "i686-pc-linux-gnu"... (gdb) run Starting program: /usr/bin/gnome-sound-recorder [New Thread 16384 (LWP 19613)] INFO (19613: 0) Initializing GStreamer Core Library version 0.6.2 INFO (19613: 0) CPU features: (00000000) MMX SSE INFO (19613: 0) registry: loaded user_registry in 0.000280 seconds (/home/mayouty/.gstreamer/registry.xml) INFO (19613: 0) registry: loaded global_registry in 0.259480 seconds (/var/lib/cache/gstreamer-0.6/registry.xml) [New Thread 32769 (LWP 19614)] [New Thread 16386 (LWP 19615)] ** (gnome-sound-recorder:19615): WARNING **: FIXME: guard from double entry [New Thread 32771 (LWP 19616)] /* I CLICKED THE KILL PROGRAM FROM THE NOT RESPONDING DIALOG HERE. THIS IS JUST A COMMENT */ Program exited normally. (gdb) bt No stack. (gdb)
This is a simple deadlock in gnome-media then. The problem is that gst_element_change_state is emitting a signal while holding a lock; something needs to be done about that.
Created attachment 19764 [details] [review] Don't make bonobo/gtk call inside gst callback, it is a baaaad idea..
*** Bug 120966 has been marked as a duplicate of this bug. ***
Comitted to HEAD. Thanks for the patch!