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 365501 - [x/xvimagesink] race condition when creating first image buffer mini-object due to g_type_class_ref() not being thread-safe
[x/xvimagesink] race condition when creating first image buffer mini-object d...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other All
: High critical
: 0.10.11
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 368205 376772 412010 417244 418709 430297 460088 462931 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2006-10-26 23:51 UTC by jens.sauer
Modified: 2007-10-17 15:27 UTC
See Also:
GNOME target: ---
GNOME version: 2.15/2.16



Description jens.sauer 2006-10-26 23:51:40 UTC
Version: 2.16.2

What were you doing when the application crashed?



Distribution: Ubuntu 6.10 (edgy)
Gnome Release: 2.16.1 2006-10-02 (Ubuntu)
BugBuddy Version: 2.16.0

Memory status: size: 209362944 vsize: 0 resident: 209362944 share: 0 rss: 83988480 rss_rlim: 0
CPU usage: start_time: 1161906680 rtime: 0 utime: 312 stime: 0 cutime:282 cstime: 0 timeout: 30 it_real_value: 0 frequency: 6

Backtrace was generated from '/usr/bin/totem'

(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1226126624 (LWP 3781)]
[New Thread -1368089696 (LWP 3803)]
[New Thread -1329497184 (LWP 3801)]
[New Thread -1321010272 (LWP 3800)]
[New Thread -1312134240 (LWP 3799)]
[New Thread -1303602272 (LWP 3798)]
[New Thread -1275966560 (LWP 3797)]
[New Thread -1284404320 (LWP 3790)]
[New Thread -1267496032 (LWP 3787)]
0xffffe410 in __kernel_vsyscall ()

Thread 3 (Thread -1329497184 (LWP 3801))

  • #0 __kernel_vsyscall
  • #1 __waitpid_nocancel
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 gnome_gtk_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 __kernel_vsyscall
  • #5 raise
    from /lib/tls/i686/cmov/libc.so.6
  • #6 abort
    from /lib/tls/i686/cmov/libc.so.6
  • #7 g_logv
    from /usr/lib/libglib-2.0.so.0
  • #8 g_log
    from /usr/lib/libglib-2.0.so.0
  • #9 g_type_class_ref
    from /usr/lib/libgobject-2.0.so.0
  • #10 g_type_create_instance
    from /usr/lib/libgobject-2.0.so.0
  • #11 gst_mini_object_new
    at gstminiobject.c line 154
  • #12 gst_xvimagesink_xvimage_new
    at xvimagesink.c line 506
  • #13 gst_xvimagesink_show_frame
    at xvimagesink.c line 1981
  • #14 gst_base_sink_queue_object_unlocked
    at gstbasesink.c line 1576
  • #15 gst_base_sink_chain_unlocked
    at gstbasesink.c line 1908
  • #16 gst_base_sink_chain
    at gstbasesink.c line 1942
  • #17 gst_pad_chain_unchecked
    at gstpad.c line 3344
  • #18 gst_pad_push
    at gstpad.c line 3510
  • #19 gst_proxy_pad_do_chain
    at gstghostpad.c line 188
  • #20 gst_pad_chain_unchecked
    at gstpad.c line 3344
  • #21 gst_pad_push
    at gstpad.c line 3510
  • #22 gst_proxy_pad_do_chain
    at gstghostpad.c line 188
  • #23 gst_pad_chain_unchecked
    at gstpad.c line 3344
  • #24 gst_pad_push
    at gstpad.c line 3510
  • #25 gst_proxy_pad_do_chain
    at gstghostpad.c line 188
  • #26 gst_pad_chain_unchecked
    at gstpad.c line 3344
  • #27 gst_pad_push
    at gstpad.c line 3510
  • #28 gst_base_transform_chain
    at gstbasetransform.c line 1530
  • #29 gst_pad_chain_unchecked
    at gstpad.c line 3344
  • #30 gst_pad_push
    at gstpad.c line 3510
  • #31 gst_base_transform_chain
    at gstbasetransform.c line 1530
  • #32 gst_pad_chain_unchecked
    at gstpad.c line 3344
  • #33 gst_pad_push
    at gstpad.c line 3510
  • #34 gst_base_transform_chain
    at gstbasetransform.c line 1530
  • #35 gst_pad_chain_unchecked
    at gstpad.c line 3344
  • #36 gst_pad_push
    at gstpad.c line 3510
  • #37 gst_proxy_pad_do_chain
    at gstghostpad.c line 188
  • #38 gst_pad_chain_unchecked
    at gstpad.c line 3344
  • #39 gst_pad_push
    at gstpad.c line 3510
  • #40 gst_queue_loop
    at gstqueue.c line 779
  • #41 gst_task_func
    at gsttask.c line 192
  • #42 g_thread_pool_push
    from /usr/lib/libglib-2.0.so.0
  • #43 g_thread_create_full
    from /usr/lib/libglib-2.0.so.0
  • #44 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #45 clone
    from /lib/tls/i686/cmov/libc.so.6

Comment 1 Tim-Philipp Müller 2006-10-27 11:59:26 UTC
Gah, I thought this was fixed ages ago. Looks like g_type_class_ref() isn't entirely thread-safe either if the class doesn't exist yet. Should be fixed now:

 2006-10-27  Tim-Philipp Müller  <tim at centricular dot net>

        * sys/ximage/ximagesink.c: (gst_ximagesink_get_type):
        * sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_type):
          Explicitly create our custom buffer classes at a thread-safe
          location as well, since g_type_class_ref() doesn't seem to be
          entirely thread-safe either (#365501; also see #349410).

Comment 2 Tim-Philipp Müller 2006-10-31 11:57:53 UTC
*** Bug 368205 has been marked as a duplicate of this bug. ***
Comment 3 Christian Kirbach 2006-11-19 19:54:37 UTC
*** Bug 376772 has been marked as a duplicate of this bug. ***
Comment 4 Philip Withnall 2007-03-02 06:44:31 UTC
*** Bug 412010 has been marked as a duplicate of this bug. ***
Comment 5 Tim-Philipp Müller 2007-03-23 09:40:16 UTC
*** Bug 418709 has been marked as a duplicate of this bug. ***
Comment 6 Tim-Philipp Müller 2007-03-27 23:16:29 UTC
*** Bug 417244 has been marked as a duplicate of this bug. ***
Comment 7 palfrey 2007-04-16 15:19:37 UTC
*** Bug 430297 has been marked as a duplicate of this bug. ***
Comment 8 Iestyn Pryce 2007-08-03 18:41:55 UTC
*** Bug 462931 has been marked as a duplicate of this bug. ***
Comment 9 Wim Taymans 2007-10-17 15:27:20 UTC
*** Bug 460088 has been marked as a duplicate of this bug. ***