Bug#685125: gnome-media: gnome-sound-recorder appears to deadlock when starting a second recording

Miah Gregory mace at darksilence.net
Fri Aug 17 06:56:59 UTC 2012


Package: gnome-media
Version: 3.4.0-1
Severity: important

Hi,

When starting gnome-sound-recorder, you can click the record button and it duly
starts recording.

When I stop recording, then hit the record button again, I am correctly asked
if I want to save the recording.

I answer 'continue without saving'.

What should happen at this stage is that it should begin recording again,
however I have seen two different behaviours:

Behaviour 1:

gnome-sound-recorder reverts to a 'ready' state and remains responsive, but
seems to believe that there is an unsaved recording if you attempt to start a
new recording.

Behaviour 2:

gnome-sound-recorder becomes unresponsive, the 'save recording?' dialog and the
main window stop redrawing, and the only way to exit the application is to kill
it from the console.

Behaviour 2 is by far the most common.

Very, very rarely, it actually starts recording again.

Experimenting with --gst-debug-level on the command line, setting a level of 3
still shows the behaviour, but setting a level or 4 or 5 does not. I suspect
this is due to the sheer amount of debugging information being output affecting
timings and preventing a race condition.

Running gnome-sound-recorder in gdb makes it somewhat more reliable, again
suggesting a race condition. However after four or five stop/start recording
cycles I managed to get it to exhibit behaviour 1 followed by behaviour 2, and
here is the thread information:

(gdb) info threads
  Id   Target Id         Frame
  20   Thread 0x7fffe42c9700 (LWP 19113) "autoaudiosrc3-a"
__pthread_mutex_lock_full (mutex=0xc9e6e0) at pthread_mutex_lock.c:303
  19   Thread 0x7fffcf7fe700 (LWP 19112) "gnome-sound-rec" __lll_lock_wait ()
at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
  18   Thread 0x7fffcffff700 (LWP 19111) "threaded-ml" 0x00007ffff577ea93 in
*__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1) at
../sysdeps/unix/sysv/linux/poll.c:87
  17   Thread 0x7fffe3ac8700 (LWP 19110) "threaded-ml"
__pthread_mutex_lock_full (mutex=0xc9e6e0) at pthread_mutex_lock.c:303
* 1    Thread 0x7ffff7fb8920 (LWP 19092) "gnome-sound-rec"
__pthread_mutex_lock_full (mutex=0xc9e6e0) at pthread_mutex_lock.c:303

(gdb) thread apply all bt

Thread 20 (Thread 0x7fffe42c9700 (LWP 19113)):
#0  __pthread_mutex_lock_full (mutex=0xc9e6e0) at pthread_mutex_lock.c:303
#1  0x00007fffe5ed552e in pa_mutex_lock () from /usr/lib/x86_64-linux-
gnu/pulseaudio/libpulsecommon-2.0.so
#2  0x00007fffe69bb655 in ?? () from /usr/lib/x86_64-linux-
gnu/gstreamer-0.10/libgstpulse.so
#3  0x00007fffe678f7b9 in ?? () from /usr/lib/x86_64-linux-
gnu/libgstaudio-0.10.so.0
#4  0x00007fffe677b8c3 in ?? () from /usr/lib/x86_64-linux-
gnu/libgstaudio-0.10.so.0
#5  0x00007ffff78accd5 in gst_clock_get_internal_time () from /usr/lib/x86_64
-linux-gnu/libgstreamer-0.10.so.0
#6  0x00007ffff78ace58 in gst_clock_get_time () from /usr/lib/x86_64-linux-
gnu/libgstreamer-0.10.so.0
#7  0x00007fffe6df799d in ?? () from /usr/lib/x86_64-linux-
gnu/libgstbase-0.10.so.0
#8  0x00007fffe6df8353 in ?? () from /usr/lib/x86_64-linux-
gnu/libgstbase-0.10.so.0
#9  0x00007ffff78f8b24 in ?? () from /usr/lib/x86_64-linux-
gnu/libgstreamer-0.10.so.0
#10 0x00007ffff5ed35f2 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007ffff5ed2df5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007ffff5a3eb50 in start_thread (arg=<optimized out>) at
pthread_create.c:304
#13 0x00007ffff57896dd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#14 0x0000000000000000 in ?? ()

Thread 19 (Thread 0x7fffcf7fe700 (LWP 19112)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1  0x00007ffff5a4136f in _L_lock_1145 () from /lib/x86_64-linux-
gnu/libpthread.so.0
#2  0x00007ffff5a412ba in __pthread_mutex_lock (mutex=0xd129f0) at
pthread_mutex_lock.c:101
#3  0x00007ffff5eec1b1 in g_mutex_lock () from /lib/x86_64-linux-
gnu/libglib-2.0.so.0
#4  0x00007ffff789af40 in gst_object_get_parent () from /usr/lib/x86_64-linux-
gnu/libgstreamer-0.10.so.0
#5  0x00007ffff789afd3 in ?? () from /usr/lib/x86_64-linux-
gnu/libgstreamer-0.10.so.0
#6  0x00007ffff65a79cb in g_object_notify () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#7  0x00007fffe69b8b6a in ?? () from /usr/lib/x86_64-linux-
gnu/gstreamer-0.10/libgstpulse.so
#8  0x00007fffe6793fe8 in ?? () from /usr/lib/x86_64-linux-
gnu/libgstaudio-0.10.so.0
#9  0x00007ffff5ed2df5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff5a3eb50 in start_thread (arg=<optimized out>) at
pthread_create.c:304
#11 0x00007ffff57896dd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 18 (Thread 0x7fffcffff700 (LWP 19111)):
#0  0x00007ffff577ea93 in *__GI___poll (fds=<optimized out>, nfds=<optimized
out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fffe632fe3f in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#2  0x00007fffe632139c in pa_mainloop_poll () from /usr/lib/x86_64-linux-
gnu/libpulse.so.0
#3  0x00007fffe63219f9 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-
gnu/libpulse.so.0
#4  0x00007fffe6321ab0 in pa_mainloop_run () from /usr/lib/x86_64-linux-
gnu/libpulse.so.0
#5  0x00007fffe632fdef in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#6  0x00007fffe5ed6423 in ?? () from /usr/lib/x86_64-linux-
gnu/pulseaudio/libpulsecommon-2.0.so
#7  0x00007ffff5a3eb50 in start_thread (arg=<optimized out>) at
pthread_create.c:304
#8  0x00007ffff57896dd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 17 (Thread 0x7fffe3ac8700 (LWP 19110)):
#0  __pthread_mutex_lock_full (mutex=0xc9e6e0) at pthread_mutex_lock.c:303
#1  0x00007fffe5ed552e in pa_mutex_lock () from /usr/lib/x86_64-linux-
gnu/pulseaudio/libpulsecommon-2.0.so
#2  0x00007fffe632fe49 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#3  0x00007fffe632139c in pa_mainloop_poll () from /usr/lib/x86_64-linux-
gnu/libpulse.so.0
#4  0x00007fffe63219f9 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-
gnu/libpulse.so.0
#5  0x00007fffe6321ab0 in pa_mainloop_run () from /usr/lib/x86_64-linux-
gnu/libpulse.so.0
#6  0x00007fffe632fdef in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#7  0x00007fffe5ed6423 in ?? () from /usr/lib/x86_64-linux-
gnu/pulseaudio/libpulsecommon-2.0.so
#8  0x00007ffff5a3eb50 in start_thread (arg=<optimized out>) at
pthread_create.c:304
#9  0x00007ffff57896dd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ffff7fb8920 (LWP 19092)):
#0  __pthread_mutex_lock_full (mutex=0xc9e6e0) at pthread_mutex_lock.c:303
#1  0x00007fffe5ed552e in pa_mutex_lock () from /usr/lib/x86_64-linux-
gnu/pulseaudio/libpulsecommon-2.0.so
#2  0x00007fffe69bb655 in ?? () from /usr/lib/x86_64-linux-
gnu/gstreamer-0.10/libgstpulse.so
#3  0x00007fffe678f7b9 in ?? () from /usr/lib/x86_64-linux-
gnu/libgstaudio-0.10.so.0
#4  0x00007fffe677b8c3 in ?? () from /usr/lib/x86_64-linux-
gnu/libgstaudio-0.10.so.0
#5  0x00007ffff78accd5 in gst_clock_get_internal_time () from /usr/lib/x86_64
-linux-gnu/libgstreamer-0.10.so.0
#6  0x00007ffff78ace58 in gst_clock_get_time () from /usr/lib/x86_64-linux-
gnu/libgstreamer-0.10.so.0
#7  0x00007ffff78d505d in ?? () from /usr/lib/x86_64-linux-
gnu/libgstreamer-0.10.so.0
#8  0x00007ffff78d548b in ?? () from /usr/lib/x86_64-linux-
gnu/libgstreamer-0.10.so.0
#9  0x00007ffff78b4fcc in gst_element_change_state () from /usr/lib/x86_64
-linux-gnu/libgstreamer-0.10.so.0
#10 0x00007ffff78b5922 in ?? () from /usr/lib/x86_64-linux-
gnu/libgstreamer-0.10.so.0
#11 0x0000000000409ba7 in ?? ()
#12 0x000000000040cc1f in ?? ()
#13 0x00007ffff65a1724 in g_closure_invoke () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#14 0x00007ffff65b27b0 in ?? () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#15 0x00007ffff65ba72c in g_signal_emit_valist () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#16 0x00007ffff65ba8c2 in g_signal_emit () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#17 0x00007ffff70726f3 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#18 0x00007ffff722e909 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007ffff65a1a03 in ?? () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#20 0x00007ffff65ba076 in g_signal_emit_valist () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#21 0x00007ffff65ba8c2 in g_signal_emit () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#22 0x00007ffff7098408 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#23 0x00007ffff65a1724 in g_closure_invoke () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#24 0x00007ffff65b20d3 in ?? () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#25 0x00007ffff65ba72c in g_signal_emit_valist () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#26 0x00007ffff65ba8c2 in g_signal_emit () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#27 0x00007ffff7096723 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#28 0x00007ffff715738f in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#29 0x00007ffff65a1a03 in ?? () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#30 0x00007ffff65ba076 in g_signal_emit_valist () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#31 0x00007ffff65ba8c2 in g_signal_emit () from /usr/lib/x86_64-linux-
gnu/libgobject-2.0.so.0
#32 0x00007ffff727f40e in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#33 0x00007ffff71552f5 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#34 0x00007ffff7156f63 in gtk_main_do_event () from /usr/lib/x86_64-linux-
gnu/libgtk-3.so.0
#35 0x00007ffff6da0002 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#36 0x00007ffff5eb0205 in g_main_context_dispatch () from /lib/x86_64-linux-
gnu/libglib-2.0.so.0
#37 0x00007ffff5eb0538 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007ffff5eb0932 in g_main_loop_run () from /lib/x86_64-linux-
gnu/libglib-2.0.so.0
#39 0x00007ffff71562c5 in gtk_main () from /usr/lib/x86_64-linux-
gnu/libgtk-3.so.0
#40 0x00000000004072f3 in ?? ()
#41 0x00007ffff56cfead in __libc_start_main (main=<optimized out>,
argc=<optimized out>, ubp_av=<optimized out>, init=<optimized out>,
fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe3c8) at
libc-start.c:228
#42 0x0000000000407361 in ?? ()
#43 0x00007fffffffe3c8 in ?? ()
#44 0x000000000000001c in ?? ()
#45 0x0000000000000001 in ?? ()
#46 0x00007fffffffe65c in ?? ()
#47 0x0000000000000000 in ?? ()

Please let me know if I can provide further debug information to identify the
cause of this problem.



-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (900, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-3-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages gnome-media depends on:
ii  gconf-service                    3.2.5-1
ii  gconf2                           3.2.5-1
ii  gstreamer0.10-gconf              0.10.31-3
ii  gstreamer0.10-plugins-base       0.10.36-1
ii  gstreamer0.10-plugins-good       0.10.31-3
ii  libatk1.0-0                      2.4.0-2
ii  libc6                            2.13-33
ii  libgconf-2-4                     3.2.5-1
ii  libglib2.0-0                     2.32.3-1
ii  libgnome-media-profiles-3.0-0    3.0.0-1
ii  libgstreamer-plugins-base0.10-0  0.10.36-1
ii  libgstreamer0.10-0               0.10.36-1
ii  libgtk-3-0                       3.4.2-2
ii  x11-utils                        7.7~1

Versions of packages gnome-media recommends:
ii  gnome-control-center      1:3.4.2-2
ii  gstreamer0.10-pulseaudio  0.10.31-3
ii  pulseaudio                2.0-3

gnome-media suggests no packages.

-- no debconf information



More information about the pkg-gnome-maintainers mailing list