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 740292 - base_src_do_sync: GLib-GObject-CRITICAL reffing clock when seeking really excessively
base_src_do_sync: GLib-GObject-CRITICAL reffing clock when seeking really exc...
Status: RESOLVED NOTGNOME
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
1.4.1
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-11-17 23:25 UTC by Andreas Frisch
Modified: 2016-02-21 23:51 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
GST_DEBUG_FILE=/testProgs/bug740292_clockref.log GST_DEBUG=*CLOCK*:6 GST_DEBUG_NO_COLOR=1 gst-play-1.0 /media/hdd/movie/testcd/J_SUBTITLES /SUB-01.avi --interactive (76.86 KB, text/x-log)
2014-11-24 07:55 UTC, Andreas Frisch
Details

Description Andreas Frisch 2014-11-17 23:25:28 UTC
when seeking really quickly in my app, i sometimes observed GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

i could reproduce this after about 40 seek operations on an mkv file within 30 seconds. i got a backtrace:

(enigma2:2623): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(enigma2:2623): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

Program received signal SIGTRAP, Trace/breakpoint trap.

Thread 1612026944 (LWP 2658)

  • #0 g_logv
    at /usr/src/debug/glib-2.0/glib-2.0-1_2.36.4-r0/glib-2.36.4/glib/gmessages.c line 974
  • #1 g_log
    at /usr/src/debug/glib-2.0/glib-2.0-1_2.36.4-r0/glib-2.36.4/glib/gmessages.c line 1010
  • #2 g_return_if_fail_warning
    at /usr/src/debug/glib-2.0/glib-2.0-1_2.36.4-r0/glib-2.36.4/glib/gmessages.c line 1019
  • #3 g_object_ref
    at /usr/src/debug/glib-2.0/glib-2.0-1_2.36.4-r0/glib-2.36.4/gobject/gobject.c line 2884
  • #4 gst_object_ref
    at gstobject.c line 256
  • #5 gst_base_src_do_sync
    at gstbasesrc.c line 2195
  • #6 gst_base_src_get_range
    at gstbasesrc.c line 2492
  • #7 gst_base_src_getrange
    at gstbasesrc.c line 2613
  • #8 gst_pad_get_range_unchecked
    at gstpad.c line 4263
  • #9 gst_pad_pull_range
    at gstpad.c line 4502
  • #10 gst_proxy_pad_getrange_default
    at gstghostpad.c line 184
  • #11 gst_pad_get_range_unchecked
    at gstpad.c line 4263
  • #12 gst_pad_pull_range
    at gstpad.c line 4502
  • #13 gst_pad_get_range_unchecked
    at gstpad.c line 4263
  • #14 gst_pad_pull_range
    at gstpad.c line 4502
  • #15 ??
    from /usr/lib/gstreamer-1.0/libgstmatroska.so
(gdb) 

when continuing, it goes on with
(enigma2:2623): GStreamer-CRITICAL **: gst_object_unref: assertion `((GObject *) object)->ref_count > 0' failed
(enigma2:2623): GStreamer-CRITICAL **: gst_clock_get_time: assertion `GST_IS_CLOCK (clock)' failed

and a couple more 
(enigma2:2623): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
and
(enigma2:2623): GStreamer-CRITICAL **: gst_object_unref: assertion `((GObject *) object)->ref_count > 0' failed
to eventually segfault out

none of my proprietary elements is messing with the clock.
Comment 1 Vineeth 2014-11-18 06:19:58 UTC
Hi Andreas,
Is it happening with all mkv files? or with a specific file?

i have been testing seek with playback-test for mkv files and i dont get this error even after playing with seek for a long time.
Can you check with playback-test and verify once.

And is it possible to attach complete logs. It may give some more information about the issue.

Thanks
Comment 2 Andreas Frisch 2014-11-18 09:16:29 UTC
Hi Vineeth,

i may have filed this a little prematurely. I tried again with other files, and it happens even with .avi files so it's certainly not a matroskademux issue at all. i've observed that when playing with gst-play-1.0, i could only reproduce this when using our proprietary sink element, i think it has to do with latency queries.
i'll try this with more locks first
Comment 3 Tim-Philipp Müller 2014-11-22 14:56:08 UTC
According to IRC discussions, this only happens with your custom sink, or do you have a test case using GStreamer sinks? What element's clock is chosen as the pipeline clock in your pipeline?
Comment 4 Andreas Frisch 2014-11-24 07:55:57 UTC
Created attachment 291339 [details]
GST_DEBUG_FILE=/testProgs/bug740292_clockref.log GST_DEBUG=*CLOCK*:6 GST_DEBUG_NO_COLOR=1 gst-play-1.0 /media/hdd/movie/testcd/J_SUBTITLES /SUB-01.avi --interactive

it's true, this issue only happens with dreamvideosink, a decoding hardware sink element. due to the lack of other actual video sinks on the architecture, i could only test against fakesink and filesink, where i couldn't reproduce the problem.

none of the hw sink elements can provide a clock, therefore the pipeline uses the system clock.
Comment 5 Tim-Philipp Müller 2016-02-21 23:51:22 UTC
Not really clear the problem is in GStreamer then, not sure what to do about this, you'll have to debug it :) Please re-open if you find it's something in gst.