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 670588 - generic/states check fails: GST_IS_PAD (pad) warning caused by facedetect element
generic/states check fails: GST_IS_PAD (pad) warning caused by facedetect ele...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.23
Other Linux
: Normal normal
: 0.10.24
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-02-22 09:53 UTC by Götz Waschk
Modified: 2012-03-15 18:49 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
debug log from the check (226.36 KB, application/x-xz)
2012-02-22 13:21 UTC, Götz Waschk
Details

Description Götz Waschk 2012-02-22 09:53:04 UTC
This is on Mandriva Cooker x86_64 with gst-plugins-bad 0.10.23. The checks fail with this error:

make[1]: Entering directory `/home/goetz/rpm/BUILD/gst-plugins-bad-0.10.23/tests/check'
libdc1394 error: Failed to initialize libdc1394
Running suite(s): states
libdc1394 error: Failed to initialize libdc1394


Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed
libdc1394 error: Failed to initialize libdc1394


Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed
libdc1394 error: Failed to initialize libdc1394


Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed
0%: Checks: 3, Failures: 3, Errors: 0
gstcheck.c:72:F:general:test_state_changes_up_and_down_seq:0: Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed
gstcheck.c:72:F:general:test_state_changes_up_seq:0: Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed
gstcheck.c:72:F:general:test_state_changes_down_seq:0: Unexpected critical/warning: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed
FAIL: generic/states
Comment 1 Götz Waschk 2012-02-22 13:21:54 UTC
Created attachment 208197 [details]
debug log from the check

this is the debug output with debug level 5.
Comment 2 Stefan Sauer (gstreamer, gtkdoc dev) 2012-03-05 10:07:47 UTC
hmm, dc1394src is on the ignore list. Seem to be opencv releated:

0:00:00.656075589  6649      0x257d800 DEBUG     GST_PLUGIN_LOADING gstplugin.c:737:gst_plugin_load_file: attempt to load plugin "../../ext/opencv/.libs/libgstopencv.so"
libdc1394 error: Failed to initialize libdc1394
Comment 3 Tim-Philipp Müller 2012-03-06 18:34:51 UTC
What makes the unit test fail, however, is the GST_IS_PAD critical.

Götz, could you run:

 -bad/tests/check $ G_DEBUG=fatal_warnings  GST_DEBUG=check:5 make generic/states.check 2>dbg.log

please ?
Comment 4 Tim-Philipp Müller 2012-03-06 18:35:29 UTC
Err, what I meant was:

 -bad/tests/check $ G_DEBUG=fatal_warnings  make generic/states.gdb

and then get a stack trace when it fails :)
Comment 5 Götz Waschk 2012-03-08 18:31:55 UTC
Here's the backtrace:


libdc1394 error: Failed to initialize libdc1394
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]

GStreamer-CRITICAL **: gst_pad_is_linked: assertion `GST_IS_PAD (pad)' failed

Program received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x7ffff798b5b8 "GStreamer", log_level=<optimized out>,
    format=0x7ffff7432e7a "%s: assertion `%s' failed", args1=0x7fffffffda78)
    at gmessages.c:765
765               g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
(gdb) bt
  • #0 g_logv
    at gmessages.c line 765
  • #1 g_log
    at gmessages.c line 792
  • #2 gst_pad_is_linked
    at gstpad.c line 1834
  • #3 toggle_pads_link_state
    at gstfaceoverlay.c line 131
  • #4 gst_face_overlay_create_pad
    at gstfaceoverlay.c line 160
  • #5 gst_face_overlay_create_children
    at gstfaceoverlay.c line 228
  • #6 gst_face_overlay_change_state
    at gstfaceoverlay.c line 245
  • #7 gst_element_change_state
    at gstelement.c line 2761
  • #8 gst_element_set_state_func
    at gstelement.c line 2717
  • #9 test_state_changes_up_and_down_seq
    at generic/states.c line 120
  • #10 tcase_run_tfun_nofork
  • #11 srunner_iterate_tcase_tfuns
    at check_run.c line 181
  • #12 srunner_run_tcase
    at check_run.c line 302
  • #13 srunner_iterate_suites
    at check_run.c line 150
  • #14 srunner_run_all
    at check_run.c line 561
  • #15 gst_check_run_suite
    at gstcheck.c line 587
  • #16 main
    at generic/states.c line 238

Comment 6 Tim-Philipp Müller 2012-03-15 18:49:07 UTC
Should be fixed in git now (but may require other commits too, like the pad template fix):


commit d405ea2e632363e560dd3784177f249196bb2bc1
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date:   Thu Mar 15 16:52:44 2012 +0000

    faceoverlay: fix weird pad creation code
    
    The element would create normal pads in its instance_init function,
    and then later in NULL->READY create the elements it needs, remove
    the pads created in the instance_init function, and add new ghost
    pads instead. Not without saving the external peer pads of the old
    pads of course, which it would promptly re-link to the new ghost
    pads. Do all of that a bit differently.
    
    Fixes the generic/states.check unit test.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=670588


commit 55b0f1e60168571ebbbd7a99ab51a687607a6619
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date:   Thu Mar 15 17:42:56 2012 +0000

    faceoverlay: fix pad templates
    
    Use generic and unspecififed rgb/caps for now. The exact caps
    supported depend on the facedetect element and rsvgoverlay. It's
    not clear how this worked before, since facedetect only accepts
    24-bit RGB, but the caps advertised 32-bit ARGB/BGRA. In any case,
    we don't want to force anything really, so that if any of those
    elements acquires support for additional formats we pick those up
    automatically.

commit e1e827d364942ceb6f6fd61c6ae4bb5ff3db6fdc
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date:   Thu Mar 15 17:26:14 2012 +0000

    rsvgoverlay: fix crash due to double adapter unref