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 591538 - generic states test fails (vdpau, mimenc)
generic states test fails (vdpau, mimenc)
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal blocker
: 0.10.14
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-08-12 07:28 UTC by Götz Waschk
Modified: 2009-08-13 05:39 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gstreamer debug log (853.56 KB, application/x-bzip2)
2009-08-12 07:30 UTC, Götz Waschk
  Details
requested log (87.77 KB, text/plain)
2009-08-12 08:26 UTC, Götz Waschk
  Details
blacklist vdpau in states test and demote elements to rank NONE (3.46 KB, patch)
2009-08-12 09:32 UTC, Tim-Philipp Müller
committed Details | Review
mimenc: Refuse to go playing in paused-mode without clock (1.67 KB, patch)
2009-08-12 20:10 UTC, Olivier Crête
none Details | Review
mimenc: USE GST_WRITE_*_LE macros (1.49 KB, patch)
2009-08-12 20:12 UTC, Olivier Crête
committed Details | Review
mimenc: Refuse to go playing in paused-mode without clock (1.85 KB, patch)
2009-08-12 20:50 UTC, Olivier Crête
committed Details | Review

Description Götz Waschk 2009-08-12 07:28:18 UTC
This is in gst-plugins-bad 0.10.13.2 on Mandriva Cooker with the latest released GStreamer:

0%: Checks: 3, Failures: 0, Errors: 3
generic/states.c:114:E:general:test_state_changes_up_and_down_seq:0: (after this point) Received signal 11 (Speicherzugriffsfehler)
generic/states.c:151:E:general:test_state_changes_up_seq:0: (after this point) Received signal 11 (Speicherzugriffsfehler)
generic/states.c:186:E:general:test_state_changes_down_seq:0: (after this point) Received signal 11 (Speicherzugriffsfehler)
FAIL: generic/states
Comment 1 Götz Waschk 2009-08-12 07:30:11 UTC
Created attachment 140529 [details]
gstreamer debug log
Comment 2 Tim-Philipp Müller 2009-08-12 08:15:17 UTC
I can't see these failures in the debug log (or any output of check really). 

Could you get a stack trace from where it crashes with

  make generic/states.gdb
  (gdb) run

in tests/check?

and/or make a log with:

  GST_DEBUG=check:5 make generic/states.check 2>&1 | tee states.log


I'm aware of an issue with the renamed amrwbenc plugin if the old amrwb plugin is still installed in the system directory, but I'm guessing this isn't the problem here, right? (All tests would fail then and there would be lots of 'can't register existing type AmrwbEnc warnings').
Comment 3 Götz Waschk 2009-08-12 08:24:22 UTC
Here's the gdb output:
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /home/goetz/svn/gstreamer0.10-plugins-bad/BUILD/gst-plugins-bad-0.10.13.2/tests/check/generic/states 
[Thread debugging using libthread_db enabled]
Detaching after fork from child process 31657.
Running suite(s): states
[New Thread 0x4059b470 (LWP 31656)]
[New Thread 0x40ee8b70 (LWP 31658)]

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) bt
  • #0 ??
  • #1 gst_vdp_device_finalize
    at gstvdpdevice.c line 52
  • #2 IA__g_object_unref
    at gobject.c line 2421
  • #3 gst_vdp_mpeg_dec_reset
    at gstvdpmpegdec.c line 608
  • #4 gst_vdp_mpeg_dec_change_state
    at gstvdpmpegdec.c line 1013
  • #5 gst_element_change_state
    at gstelement.c line 2547
  • #6 gst_element_set_state_func
    at gstelement.c line 2503
  • #7 gst_element_set_state
    at gstelement.c line 2404
  • #8 test_state_changes_up_and_down_seq
    at generic/states.c line 125
  • #9 srunner_run_all
    at check_run.c line 413
  • #10 gst_check_run_suite
    at gstcheck.c line 548
  • #11 main
    at generic/states.c line 231

Comment 4 Götz Waschk 2009-08-12 08:26:04 UTC
Created attachment 140531 [details]
requested log
Comment 5 Tim-Philipp Müller 2009-08-12 08:47:57 UTC
Thanks, I can reproduce this now that I have the vdpau headers/lib installed.
Comment 6 Tim-Philipp Müller 2009-08-12 09:32:16 UTC
Created attachment 140537 [details] [review]
blacklist vdpau in states test and demote elements to rank NONE

Does this help?
Comment 7 Götz Waschk 2009-08-12 11:31:45 UTC
There must be another bug:

Running suite(s): states


Unexpected critical/warning: gst_clock_get_time: assertion `GST_IS_CLOCK (clock)' failed


Unexpected critical/warning: gst_clock_get_time: assertion `GST_IS_CLOCK (clock)' failed


Unexpected critical/warning: gst_clock_get_time: assertion `GST_IS_CLOCK (clock)' 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_clock_get_time: assertion `GST_IS_CLOCK (clock)' failed
gstcheck.c:72:F:general:test_state_changes_up_seq:0: Unexpected critical/warning: gst_clock_get_time: assertion `GST_IS_CLOCK (clock)' failed
gstcheck.c:72:F:general:test_state_changes_down_seq:0: Unexpected critical/warning: gst_clock_get_time: assertion `GST_IS_CLOCK (clock)' failed
FAIL: generic/states
Comment 8 Tim-Philipp Müller 2009-08-12 11:35:03 UTC
> There must be another bug:
 
> Running suite(s): states 
> Unexpected critical/warning: gst_clock_get_time: assertion `GST_IS_CLOCK
> (clock)' failed

Where does that come from?

 $ cd tests/check/
 $ G_DEBUG=fatal_warnings make generic/states.gdb
 (gdb) run
Comment 9 Götz Waschk 2009-08-12 11:49:47 UTC
[goetz@n5 check]$ G_DEBUG=fatal_warnings make generic/states.gdb
GNU gdb 6.8-6mdv2009.1 (Mandriva Linux release 2009.1)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-mandriva-linux-gnu"...
(gdb) run
Starting program: /home/goetz/svn/gstreamer0.10-plugins-bad/BUILD/gst-plugins-bad-0.10.13.2/tests/check/generic/states 
[Thread debugging using libthread_db enabled]
Detaching after fork from child process 22709.
Running suite(s): states
[New Thread 0x4059b470 (LWP 22696)]
[New Thread 0x40ee8b70 (LWP 22722)]
[Thread 0x40ee8b70 (LWP 22722) exited]
[New Thread 0x40ee8b70 (LWP 22739)]
[New Thread 0x43054b70 (LWP 22740)]
[New Thread 0x43255b70 (LWP 22741)]
[New Thread 0x43456b70 (LWP 22742)]
[Thread 0x43456b70 (LWP 22742) exited]
[Thread 0x43054b70 (LWP 22740) exited]
[Thread 0x43255b70 (LWP 22741) exited]
[Thread 0x40ee8b70 (LWP 22739) exited]
[New Thread 0x43456b70 (LWP 22747)]
Detaching after fork from child process 22748.
Detaching after fork from child process 22749.

GStreamer-CRITICAL **: gst_clock_get_time: assertion `GST_IS_CLOCK (clock)' failed
aborting...

Program received signal SIGTRAP, Trace/breakpoint trap.
IA__g_logv (log_domain=<value optimized out>, log_level=G_LOG_LEVEL_CRITICAL, format=0x401fccc5 "%s: assertion `%s' failed", 
    args1=0xbf88830c "��\020@\035�\020@�3\001@\210x\005\b\220D\034@x\234\020@�\237\023@������\t@x\234\020@��\020@\035�\020@\005p\n@X�\027\b�\232\005\bPH\025\b��\214C\200\003<@PH\025\bx\203\210�I") at gmessages.c:512
512               g_private_set (g_log_depth, GUINT_TO_POINTER (depth));
(gdb) bt
  • #0 IA__g_logv
    at gmessages.c line 512
  • #1 IA__g_log
    at gmessages.c line 526
  • #2 IA__g_return_if_fail_warning
  • #3 gst_clock_get_time
    at gstclock.c line 880
  • #4 gst_mimenc_change_state
    at gstmimenc.c line 597
  • #5 gst_element_change_state
    at gstelement.c line 2547
  • #6 gst_element_set_state_func
    at gstelement.c line 2503
  • #7 gst_element_set_state
    at gstelement.c line 2404
  • #8 test_state_changes_up_and_down_seq
    at generic/states.c line 123
  • #9 srunner_run_all
    at check_run.c line 413
  • #10 gst_check_run_suite
    at gstcheck.c line 548
  • #11 main
    at generic/states.c line 231

Comment 10 Tim-Philipp Müller 2009-08-12 15:06:42 UTC
Indeed, thanks.
Comment 11 Olivier Crête 2009-08-12 20:10:15 UTC
Created attachment 140579 [details] [review]
mimenc: Refuse to go playing in paused-mode without clock

Only try to use the clock in if paused-mode is set and refuse to go playing
in paused-mode without it.

Fixes bug #591538
Comment 12 Olivier Crête 2009-08-12 20:12:04 UTC
Created attachment 140580 [details] [review]
mimenc: USE GST_WRITE_*_LE macros
Comment 13 Tim-Philipp Müller 2009-08-12 20:35:04 UTC
> Created an attachment (id=140579) [edit]
> mimenc: Refuse to go playing in paused-mode without clock

Thanks for the patch. Sorry for the nitpicking, but could you update this to use

  GST_ELEMENT_ERROR(enc, LIBRARY, SETTINGS, ("bla bla"), (NULL));

or so instead? Feel free to use STREAM, ENCODE or whatever other error code you find most suitable instead. (I believe the object lock has to be dropped before the GST_ELEMENT_ERROR then, fwiw).


> Created an attachment (id=140580) [edit]
> mimenc: USE GST_WRITE_*_LE macros

Looks good, please commit (I guess the timestamp writing was broken on big endian machines before then?).
Comment 14 Olivier Crête 2009-08-12 20:50:40 UTC
Created attachment 140586 [details] [review]
mimenc: Refuse to go playing in paused-mode without clock

Now with added message posting
Comment 15 Tim-Philipp Müller 2009-08-12 21:20:49 UTC
Thanks, please commit. (Btw, the GST_ELEMENT_ERROR macro already contains a GST_WARNING_OBJECT in addition to the message posting).
Comment 16 Olivier Crête 2009-08-12 21:38:08 UTC
mimenc part done:

commit 4f61f46f073a940b7fab47ae165b8816ff74770c
Author: Olivier Crête <tester@tester.ca>
Date:   Wed Aug 12 12:23:30 2009 -0400

    mimenc: USE GST_WRITE_*_LE macros

commit 6001c6b5c0e438b4bab21a2babc0bad6cf6630a9
Author: Olivier Crête <tester@tester.ca>
Date:   Wed Aug 12 12:21:33 2009 -0400

    mimenc: Refuse to go playing in paused-mode without clock
    
    Only try to use the clock in if paused-mode is set and refuse to go playing
    in paused-mode without it.
    
    Fixes bug #591538
Comment 17 Tim-Philipp Müller 2009-08-12 22:54:38 UTC
Götz: better now?
Comment 18 Götz Waschk 2009-08-13 05:39:29 UTC
It is fixed now, thanks a lot.