After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 733225 - Lockup while using Cheese on 1.3.91
Lockup while using Cheese on 1.3.91
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.3.91
Other Linux
: Normal normal
: 1.5.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-07-15 19:59 UTC by Cosimo Cecchi
Modified: 2014-11-08 14:14 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Cosimo Cecchi 2014-07-15 19:59:10 UTC
I'm using Cheese on GStreamer 1.3.91 + these patches [1] [2]. Cheese seems to run much better compared to previous 1.3.x releases, but I experience a very reproducible lock when taking two pictures in a row. It seems that two threads are being locked on the same mutex, probably a race condition.
See trace below.

[1] http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=d7876e55970be79854988133c5d44ff40f962a8b
[2] http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=362951b9ec7139da43b0a72b6b80c06a67d05b04

Thread 1 (Thread 0xb664a840 (LWP 28975))

  • #0 __kernel_vsyscall
  • #1 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S line 144
  • #2 _L_lock_884
    from /lib/i386-linux-gnu/libpthread.so.0
  • #3 __GI___pthread_mutex_lock
    at pthread_mutex_lock.c line 85
  • #4 g_rec_mutex_lock
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./glib/gthread-posix.c line 380
  • #5 post_activate
    at gstpad.c line 966
  • #6 gst_pad_activate_mode
    at gstpad.c line 1154
  • #7 gst_ghost_pad_activate_push_default
    at gstghostpad.c line 379
  • #8 gst_pad_activate_mode
    at gstpad.c line 1147
  • #9 gst_pad_set_active
    at gstpad.c line 1031
  • #10 activate_pads
    at gstbin.c line 2368
  • #11 gst_iterator_fold
    at gstiterator.c line 612
  • #12 iterator_activate_fold_with_resync
    at gstbin.c line 2387
  • #13 gst_bin_src_pads_activate
    at gstbin.c line 2421
  • #14 gst_bin_change_state_func
    at gstbin.c line 2600
  • #15 gst_element_change_state
    at gstelement.c line 2601
  • #16 gst_element_continue_state
    at gstelement.c line 2311
  • #17 gst_element_change_state
    at gstelement.c line 2645
  • #18 gst_element_set_state_func
    at gstelement.c line 2557
  • #19 gst_element_set_state
    at gstelement.c line 2458
  • #20 start_image_capture
    at gstwrappercamerabinsrc.c line 831
  • #21 gst_wrapper_camera_bin_src_start_capture
    at gstwrappercamerabinsrc.c line 1119
  • #22 gst_base_camera_src_start_capture
    at gstbasecamerasrc.c line 203
  • #23 g_cclosure_marshal_VOID__VOIDv
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gmarshal.c line 115
  • #24 _g_closure_invoke_va
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gclosure.c line 831
  • #25 g_signal_emit_valist
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gsignal.c line 3215
  • #26 g_signal_emit_by_name
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gsignal.c line 3403
  • #27 gst_camera_bin_start_capture
    at gstcamerabin2.c line 413
  • #28 g_cclosure_marshal_VOID__VOIDv
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gmarshal.c line 115
  • #29 g_type_class_meta_marshalv
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gclosure.c line 988
  • #30 _g_closure_invoke_va
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gclosure.c line 831
  • #31 g_signal_emit_valist
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gsignal.c line 3215
  • #32 g_signal_emit_by_name
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gsignal.c line 3403
  • #33 cheese_camera_take_photo
    from /usr/lib/i386-linux-gnu/libcheese.so.7
  • #34 ??
  • #35 ??
  • #36 g_cclosure_marshal_VOID__VOIDv
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gmarshal.c line 115
  • #37 _g_closure_invoke_va
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gclosure.c line 831
  • #38 g_signal_emit_valist
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gsignal.c line 3215
  • #39 g_signal_emit
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gobject/gsignal.c line 3363
  • #40 clutter_timeline_do_frame
    at ./clutter-timeline.c line 1091
  • #41 _clutter_timeline_do_tick
    at ./clutter-timeline.c line 1756
  • #42 master_clock_advance_timelines
    at ./clutter-master-clock.c line 426
  • #43 clutter_clock_dispatch
    at ./clutter-master-clock.c line 586
  • #44 g_main_dispatch
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./glib/gmain.c line 3064
  • #45 g_main_context_dispatch
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./glib/gmain.c line 3663
  • #46 g_main_context_iterate
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./glib/gmain.c line 3734
  • #47 g_main_context_iteration
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./glib/gmain.c line 3795
  • #48 g_application_run
    at /usr/src/packages/BUILD/glib2.0-2.40.0+dev46.036a7b7/./gio/gapplication.c line 2115
  • #49 _vala_main
  • #50 main

Comment 1 Thiago Sousa Santos 2014-07-17 23:36:49 UTC
Can you still reproduce with latest git master for -bad? A fix for a race at camerabin image capture has been fixed earlier today.
Comment 2 Cosimo Cecchi 2014-07-22 21:41:22 UTC
That fixed it! Works like a charm in 1.4.0.