GNOME Bugzilla – Bug 162963
gst-editor crash when playing pipeline with ximagsink/xvimagesink loaded from saved xml file
Last modified: 2005-09-29 11:12:49 UTC
Distribution: Debian 3.1 Package: GStreamer Severity: normal Version: GNOME2.8.1 0.8.0 Gnome-Distributor: Debian Synopsis: GStream Editor crashes when trying to play from saved xml file Bugzilla-Product: GStreamer Bugzilla-Component: gst-editor Bugzilla-Version: 0.8.0 BugBuddy-GnomeVersion: 2.0 (2.8.0) Description: Description of the crash: GStream Editor quits unexpectedly. Steps to reproduce the crash: 1. SELECT: File | New -> from pipeline destription ... 2. USE: filesrc location=test.mp3 ! mad ! tee name=T { T.src0 ! queue ! alsasink } { T.src1 ! queue ! audioconvert ! monoscope ! ffmpegcolorspace ! ximagesink } you'll obviously need a valid test.mp3 file for this :) 3. PLAY - it works! 4. SAVE AS: test.xml (or whatever) 5. OPEN: test.xml 6. PLAY: it crashes :( Expected Results: 6. PLAY: it works! How often does this happen? Happens everytime. Some simple pipelines don't have this problem. For example: filesrc location=test.mp3 ! mad ! alsasink works no problem. So far every pipeline I've tryed using threads crashes. Additional Information: Debugging Information: Backtrace was generated from '/usr/bin/gst-editor' (no debugging symbols found)...Using host libthread_db library "/lib/tls/libthread_db.so.1". (no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...[Thread debugging using libthread_db enabled] [New Thread 1089838528 (LWP 9575)] [New Thread 1093634992 (LWP 9578)] [Thread debugging using libthread_db enabled] [New Thread 1089838528 (LWP 9575)] [New Thread 1093634992 (LWP 9578)] (no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...[Thread debugging using libthread_db enabled] [New Thread 1089838528 (LWP 9575)] [New Thread 1093634992 (LWP 9578)] (no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...0x40863431 in __waitpid_nocancel () from /lib/tls/libpthread.so.0
+ Trace 54144
------- Bug moved to this database by unknown@bugzilla.gnome.org 2005-01-04 17:13 ------- Unknown platform unknown. Setting to default platform "Other". Unknown milestone "unknown" in product "GStreamer". Setting to default milestone for this product, 'HEAD' The original reporter of this bug does not have an account here. Reassigning to the person who moved it here, unknown@bugzilla.gnome.org. Previous reporter was harvey@buskers.org. Setting to default status "UNCONFIRMED". Setting qa contact to the default for this product. This bug either had no qa contact or an invalid one.
happens here too. I'll try to look into it
I get the following: [hughsie@localhost tools]$ gst-editor ** Message: palette visible: TRUE ** Message: making new palette ** Message: canvas property notify ** Message: show utility palette: 0 ** Message: palette visible: FALSE ** Message: canvas property notify (gst-editor:30420): GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed (gst-editor:30420): GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed ** Message: linking GUI for ffmpegcolorspace0:src and ximagesink0:sink ** Message: linking GUI for alpha2:sink and videotestsrc1:src ** Message: linking GUI for videocrop1:sink and videotestsrc0:src ** Message: linking GUI for videocrop1:src and alpha1:sink ** Message: linking GUI for videomixer0:src and ffmpegcolorspace0:sink ** Message: linking GUI for videomixer0:sink_00 and alpha2:src ** Message: linking GUI for videoscale1:sink and alpha1:src ** Message: linking GUI for videoscale1:src and videomixer0:sink_01 (gst-editor:30420): GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed GStreamer-ERROR **: file gstvalue.c: line 2838 (gst_value_compare_fraction): should not be reached aborting... This is a pretty big showstopper for my project's adoption of gstreamer. Thanks for any help, Richard.
Richard, could you do: % G_DEBUG=fatal_warnings gdb --args gst-editor --gst-fatal-warnings Welcome to the Gnu debugger bla bla .. (gdb) run ... wait until it aborts after first warning ... (gdb) bt ... paste the output here and the previous five lines ... (gdb) kill (gdb) quit % Cheers -Tim
Tim, Here is the output, not sure if it's of use. I'm using the packages at http://gstreamer.freedesktop.org/pkg/fedora/4/i386/ for what it's worth. [hughsie@localhost ~]$ G_DEBUG=fatal_warnings gdb --args gst-xmllaunch untitled-2.xml --gst-fatal-warnings GNU gdb Red Hat Linux (6.3.0.0-1.21rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /usr/bin/gst-xmllaunch untitled-2.xml --gst-fatal-warnings Reading symbols from shared object read from target memory...done. Loaded system supplied DSO at 0x4ef000 GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed aborting... Program received signal SIGABRT, Aborted. 0x003b6402 in ?? () (gdb) bt
+ Trace 63117
Kill the program being debugged? (y or n) y (gdb) quit Thanks for any help, Richard.
Valgrind output. [hughsie@localhost ~]$ valgrind gst-xmllaunch untitled-2.xml ==22721== Memcheck, a memory error detector for x86-linux. ==22721== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==22721== Using valgrind-2.4.0, a program supervision framework for x86-linux. ==22721== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==22721== For more details, rerun with: -v ==22721== (gst-launch-0.8:22721): GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed (gst-launch-0.8:22721): GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed RUNNING pipeline ... (gst-launch-0.8:22721): GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed GStreamer-ERROR **: file gstvalue.c: line 2838 (gst_value_compare_fraction): should not be reached aborting... Aborted [hughsie@localhost ~]$ valgrind gst-xmllaunch-0.8 untitled-2.xml ==26359== Memcheck, a memory error detector for x86-linux. ==26359== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==26359== Using valgrind-2.4.0, a program supervision framework for x86-linux. ==26359== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==26359== For more details, rerun with: -v ==26359== ==26359== Conditional jump or move depends on uninitialised value(s) ==26359== at 0x1BD04BA7: strstr (in /lib/libc-2.3.5.so) ==26359== by 0x1BB6D6E7: __pthread_initialize_minimal (in /lib/libpthread-2.3.5.so) ==26359== by 0x1BB6D297: (within /lib/libpthread-2.3.5.so) ==26359== by 0x1BB6CE7F: (within /lib/libpthread-2.3.5.so) ==26359== by 0x1B8F1DCA: call_init (in /lib/ld-2.3.5.so) ==26359== by 0x1B8F1EEC: _dl_init (in /lib/ld-2.3.5.so) ==26359== by 0x1B8E47CE: (within /lib/ld-2.3.5.so) (gst-launch-0.8:26359): GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed (gst-launch-0.8:26359): GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed RUNNING pipeline ... (gst-launch-0.8:26359): GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed GStreamer-ERROR **: file gstvalue.c: line 2838 (gst_value_compare_fraction): should not be reached aborting... ==26359== ==26359== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 69 from 1) ==26359== malloc/free: in use at exit: 913820 bytes in 17200 blocks. ==26359== malloc/free: 44785 allocs, 27585 frees, 3369788 bytes allocated. ==26359== For counts of detected errors, rerun with: -v ==26359== searching for pointers to 17200 not-freed blocks. ==26359== checked 1131812 bytes. ==26359== ==26359== LEAK SUMMARY: ==26359== definitely lost: 68699 bytes in 2010 blocks. ==26359== possibly lost: 1040 bytes in 26 blocks. ==26359== still reachable: 844081 bytes in 15164 blocks. ==26359== suppressed: 0 bytes in 0 blocks. ==26359== Use --leak-check=full to see details of leaked memory. Aborted
[hughsie@localhost ~]$ G_DEBUG=fatal_warnings gdb --args gst-xmllaunch-0.8 untitled-2.xml --gst-fatal-warnings GNU gdb Red Hat Linux (6.3.0.0-1.21rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /usr/bin/gst-xmllaunch-0.8 untitled-2.xml --gst-fatal-warnings Reading symbols from shared object read from target memory...done. Loaded system supplied DSO at 0xd6c000 [Thread debugging using libthread_db enabled] [New Thread -1208743360 (LWP 3030)] GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed aborting... Program received signal SIGABRT, Aborted.
+ Trace 63118
Thread NaN (LWP 3030)
Kill the program being debugged? (y or n) y (gdb) exit Undefined command: "exit". Try "help". (gdb) quit
Created attachment 52465 [details] xml file that makes it crash.
This might be more useful. This is the backtrace when gst-editor tries to open the file. [hughsie@localhost src]$ G_DEBUG=fatal_warnings gdb --args ./.libs/gst-editor --gst-fatal-warnings GNU gdb Red Hat Linux (6.3.0.0-1.21rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /home/hughsie/user/code/gstreamer/gst-all/gst-editor/src/.libs/gst-editor --gst-fatal-warnings Reading symbols from shared object read from target memory...done. Loaded system supplied DSO at 0x4a6000 [Thread debugging using libthread_db enabled] [New Thread -1208669728 (LWP 14550)] ** Message: palette visible: TRUE ** Message: making new palette ** Message: canvas property notify ** Message: show utility palette: 0 ** Message: palette visible: FALSE ** Message: canvas property notify GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed aborting... Program received signal SIGABRT, Aborted.
+ Trace 63120
Thread NaN (LWP 14550)
Kill the program being debugged? (y or n) y (gdb) quit [hughsie@localhost src]$
Created attachment 52542 [details] [review] patch to make handling of pixel-aspect-ratio property in ximagesink and xvimagesink more robust Looks like this is a bug in the property handling of ximagesink and xvimagesink. It happens even for simple pipelines like videotestsrc ! ximagesink (and btw: why are the pixel-aspect-ratio properties on those sinks strings in the first place and not GstFractions? gst-launch should be able to convert them automatically, no need to do that in our property function, is there?) Attached patch should fix this.
2005-09-29 Tim-Philipp Muller <tim at centricular dot net> * sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size), (gst_ximagesink_xcontext_get), (gst_ximagesink_set_property), (gst_ximagesink_get_property), (gst_ximagesink_class_init): * sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link), (gst_xvimagesink_set_property), (gst_xvimagesink_get_property), (gst_xvimagesink_class_init): Handle 'pixel-aspect-ratio' property serialisation/deserialisation more gracefully. Fixes crashes on pipeline loading in gst-editor as well (#162963). Cheers -Tim