bugGnash - The GNU Flash player - Bugs: bug #34606, gnash crashes when trying to play...

 
 

bug #34606: gnash crashes when trying to play video.

Submitter:  None
Submitted:  Thu 20 Oct 2011 07:26:20 PM UTC
   
 
Category:  None Severity:  4 - Important
Release:  other Status:  Fixed
Privacy:  Public Assigned to:  None
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Tue 01 Nov 2011 08:06:45 PM UTC, comment #18: 

gnash from backports should work either.
What about reinstalling it without debian-multimedia.org packages?

Gabriele Giacone <gg0>
Group Member
Tue 01 Nov 2011 07:43:46 PM UTC, comment #17: 

That worked, uninstalling or downgrading a number of other things along the way.  Meant downgrading

*-n gnash +nomarkup+*-n to 0.8.8 which was the version I was running when I first came to irc about this. But downgrading the av stuff, 0.8.8 now works.

Now I have to figure out what no longer works because of the downgrades. Probably, a media player or movie editor. Anyway, thanks for all your help and patience with me figuring out how to get a useful backtrace.

Anonymous
Mon 31 Oct 2011 08:59:26 PM UTC, comment #16: 


I see you get packages from debian-multimedia.org. Better downgrading to debian ones in order to be able to file a bug against libav if needed.

# apt-get install libavcodec52=4:0.5.4-1 libavdevice52=4:0.5.4-1 libavformat52=4:0.5.4-1 ffmpeg-dbg=4:0.5.4-1
# apt-get remove libavutil50 libavcore-dev libavcore0

I didn't try to install them as above, maybe you'll have to do with dependencies.
It may also be that downgrading it no longer segfaults.

Gabriele Giacone <gg0>
Group Member
Mon 31 Oct 2011 07:56:00 PM UTC, comment #15: 

$ dpkg -l "*libav*"


Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                  Version                            Description
+++-=====================================-==================================-================================================
ii  libav-dbg                             4:0.7.2-1~bpo60+1                  Debug symbols for Libav related packages
ii  libavahi-client-dev                   0.6.27-2+squeeze1                  Development files for the Avahi client library
ii  libavahi-client3                      0.6.27-2+squeeze1                  Avahi client library
ii  libavahi-common-data                  0.6.27-2+squeeze1                  Avahi common data files
ii  libavahi-common-dev                   0.6.27-2+squeeze1                  Development files for the Avahi common library
ii  libavahi-common3                      0.6.27-2+squeeze1                  Avahi common library
ii  libavahi-compat-libdnssd1             0.6.27-2+squeeze1                  Avahi Apple Bonjour compatibility library
un  libavahi-core3                        <none>                             (no description available)
ic  libavahi-core5                        0.6.23-3lenny3                     Avahi's embeddable mDNS/DNS-SD library
ii  libavahi-core7                        0.6.27-2+squeeze1                  Avahi's embeddable mDNS/DNS-SD library
ii  libavahi-glib1                        0.6.27-2+squeeze1                  Avahi glib integration library
rc  libavahi-gobject0                     0.6.27-2+squeeze1                  Avahi GObject library
ic  libavahi-ui0                          0.6.27-2+squeeze1                  Avahi GTK+ User interface library
ii  libavc1394-0                          0.5.3-1+b2                         control IEEE 1394 audio/video devices
ii  libavcodec-dev                        5:0.6.1+svn20101128-0.2squeeze2    library to encode decode multimedia streams - de
un  libavcodec-extra-52                   <none>                             (no description available)
un  libavcodec-extra-53                   <none>                             (no description available)
un  libavcodec1-dev                       <none>                             (no description available)
un  libavcodec2-dev                       <none>                             (no description available)
ic  libavcodec51                          0.svn20080206-18+lenny3            ffmpeg codec library
ii  libavcodec52                          5:0.6.1+svn20101128-0.2squeeze2    library to encode decode multimedia streams - ru
ii  libavcodec53                          4:0.7.2-1~bpo60+1                  Libav codec library
un  libavcodeccvs-dev                     <none>                             (no description available)
un  libavcodeccvs51                       <none>                             (no description available)
un  libavcodeccvs51-dev                   <none>                             (no description available)
ii  libavcore-dev                         5:0.6.1+svn20101128-0.2squeeze2    multimedia core utilities library - devel files
ii  libavcore0                            5:0.6.1+svn20101128-0.2squeeze2    multimedia core utilities library - runtime file
un  libavdevice-extra-52                  <none>                             (no description available)
un  libavdevice-extra-53                  <none>                             (no description available)
ii  libavdevice52                         5:0.6.1+svn20101128-0.2squeeze2    ffmpeg device handling library
ii  libavdevice53                         4:0.7.2-1~bpo60+1                  Libav device handling library
un  libavdevicecvs52                      <none>                             (no description available)
un  libavfilter-extra-2                   <none>                             (no description available)
ii  libavfilter2                          4:0.7.2-1~bpo60+1                  Libav video filtering library
ii  libavformat-dev                       5:0.6.1+svn20101128-0.2squeeze2    development files for libavformat
un  libavformat-extra-52                  <none>                             (no description available)
un  libavformat-extra-53                  <none>                             (no description available)
ii  libavformat52                         5:0.6.1+svn20101128-0.2squeeze2    ffmpeg file format library
ii  libavformat53                         4:0.7.2-1~bpo60+1                  Libav file format library
un  libavformatcvs                        <none>                             (no description available)
un  libavformatcvs-dev                    <none>                             (no description available)
un  libavformatcvs51-dev                  <none>                             (no description available)
un  libavformatcvs52                      <none>                             (no description available)
un  libavformatcvs52-dev                  <none>                             (no description available)
ii  libavutil-dev                         5:0.6.1+svn20101128-0.2squeeze2    avutil devel files - devel files
un  libavutil-extra-49                    <none>                             (no description available)
un  libavutil-extra-51                    <none>                             (no description available)
un  libavutil-unstripped-49               <none>                             (no description available)
ii  libavutil49                           4:0.5.4-1                          ffmpeg utility library
ii  libavutil50                           5:0.6.1+svn20101128-0.2squeeze2    avutil shared libraries - runtime files
ii  libavutil51                           4:0.7.2-1~bpo60+1                  Libav utility library
un  libavutilcvs-dev                      <none>                             (no description available)
un  libavutilcvs49                        <none>                             (no description available)
un  libavutilcvs49-dev                    <none>                             (no description available)


the transcript of the trial with libav-dbg installed is attached as gnash-dbg.script.14.  Still lots of "0x100482c4 in ?? ()" in the output.



(file #24260)

Anonymous
Mon 31 Oct 2011 03:13:48 AM UTC, comment #14: 


Install libav-dbg and retake backtrace.

Similar to:

https://savannah.gnu.org/bugs/?32990
http://bugs.debian.org/639948

Please $ dpkg -l|grep libav

I've tried to reproduce it on a qemu ppc but I got "Illegal instruction". Rebuilding it would take a life.

To avoid page break:
$ echo set pagination 0 >> ~/.gdbinit

Gabriele Giacone <gg0>
Group Member
Mon 31 Oct 2011 02:18:51 AM UTC, comment #13: 

got debugging output.  Not sure what fixed it cause I changed two things on my latest try:

1) instead of
 

$ PATH=/usr/lib/ccache:$PATH DEB_BUILD_OPTIONS="nostrip noopt" dpkg-buildpackage -rfakeroot -uc -us


ran


$ export PATH=/usr/lib/ccache:$PATH ; export DEB_BUILD_OPTIONS="nostrip noopt"
$ dpkg-buildpackage -rfakeroot -uc -us


and 2), vi debian/rules to change DEB_BUILD_HARDENING to 0 in line 3 as suggested by Gabriele

Whichever one it was, I now have useful backtrace info, except for a few lines re libavcodec.  I'm attaching the transcript of this debugging session below as file gnash-dbg.script.11

(file #24254)

Anonymous
Tue 25 Oct 2011 05:07:51 PM UTC, comment #12: 

Decidely, my kungfu is not strong. Still getting the same sparse bt output.

# rm all previously created .deb files in parent of working dir.
# aptitude purge everything with gnash in the name.

$ PATH=/usr/lib/ccache:$PATH DEB_BUILD_OPTIONS="nostrip noopt" dpkg-buildpackage -rfakeroot -uc -us

Many warnings along the lines of:

  • jemalloc.c:2574: warning: unused parameter ‘zero’
  • jemalloc.c:5913: warning: no previous prototype for ‘memalign’
  • jemalloc.c:2072: warning: ‘extent_tree_szad_psearch’ defined but not used
  • gstutils.h:700: warning: cast from type ‘const guint8*’ to type ‘guint8*’ casts away constness
  • MediaParserGst.cpp:258: warning: comparison of unsigned expression >= 0 is always true
  • MediaParserFfmpeg.cpp:399: warning: ‘AVFormatContext::title’ is deprecated (declared at /usr/include/libavformat/avformat.h:744)
  • fileio.cpp:110: warning: no matching file member found for

static void gnash::attachInterface(gnash::as_object &obj)Possible candidates:
** static void attachInterface(as_object &obj)
** static void attachInterface(as_object *obj)

  • movie_root.cpp:1768: warning: Unsupported xml/html tag </invoke> found
  • movie_root.cpp:1774: warning: included file ExternalInterace::call is not found. Check your EXAMPLE_PATH
  • libtool: install: warning: remember to run `libtool --finish /usr/lib/gnash'
  • libtool: install: warning: `libnet/libgnashnet.la' has not been installed in `/usr/lib/gnash'
  • dpkg-shlibdeps: warning: dependency on libxml2.so.2 could be avoided if "debian/gnash-common/usr/lib/gnash/libgnashmedia-0.8.10.so" were not uselessly linked against it (they use none of its symbols).


and some errors such as:

  • gtksup.h:122: warning: argument 'msg' of command @param is not found in the argument list of gnash::GtkGui::error(const std::string &) inherited from member error at line 411 in file /var/tmp/gnash-0.8.10~git20110618/gui/gui.h



but nothing that seems to have been a show stopper.


However, the bt output is still lacking useful detail.

Anything else worth trying?

Anonymous
Mon 24 Oct 2011 07:49:15 PM UTC, comment #11: 

Just discovered another version of multivalue vars on the web, so have tried 'DEB_BUILD_OPTIONS="nostrip noopt"'.  Appears to have started without generating any warnings.  I'm going to let it build.

Any comments about make clean'ing and about removal and reinstallation of packages resulting from new iterations of the build process , but with the same version numbers, all, are welcome.

Anonymous
Mon 24 Oct 2011 06:58:15 PM UTC, comment #10: 

Encountered more difficulties.


$ DEB_BUILD_OPTIONS=nostrip,noopt dpkg-buildpackage -rfakeroot -uc -us


yields the warning:


invalid flag in DEB_BUILD_OPTIONS: nostrip,noopt


Also tried:


DEB_BUILD_OPTIONS="nostrip, noopt


and, a la $PATH,


DEB_BUILD_OPTIONS=nostrip:noopt


but all generated a similar warning.

Couldn't find anything in either man bash or man dpkg-buildpackage that would shed any light on the correct syntax of multi-value vars, so I went with


DEB_BUILD_OPTIONS=nostrip



This compiled, but the resulting program gave the same minimalist backtrace, the last few lines of which are:


#24 0x200c885c in ?? ()
#25 0x2009788c in ?? ()
#26 0x2009d564 in ?? ()
#27 0x1e98c63c in ?? ()
#28 0x1e98c800 in ?? ()
#29 0x00000000 in ?? ()


More concisely, here is what I've done:


  1. $ vi debian/rules to change the mv to -mv re the pyshared
  2. $ PATH=/usr/lib/ccache:$PATH DEB_BUILD_OPTIONS=nostrip dpkg-buildpackage -rfakeroot -uc -us
  3. # aptitude purge gnash which also rem'd browser-plugin- & -opengl
  4. # dpkg -i gnash-opengl_0.8.10~git20110618-3~bpo60+1_all.deb
  5. # dpkg -i gnash_0.8.10~git20110618-3~bpo60+1_powerpc.deb
  6. $ gnash-debug-5.sh
  7. (gdb) run <enter> 2 to 5 times
  8. Push play button on resulting player screen
  9. Select a thumbnail that appears on bottom (segfault)
  10. (gdb) bt



which gives the example above.

Do I need to do a make clean or anything like that between consecutive build attempts?
Should I purge the whole gnash suite and  reinstall everything given that the version numbers are the same between what I got from backports and what I am building on my own now?
In general, are any suggextions from anyone?

Thanks,

web21

Anonymous
Sat 22 Oct 2011 10:52:32 PM UTC, comment #9: 

nostrip makes dh_strip not stripping anything: no symbols to move.
Replace "mv" with "-mv".
I'll fix it in a better way.


To speed builds up (after the first one):

# apt-get install ccache
$ export PATH=/usr/lib/ccache:$PATH

Gabriele Giacone <gg0>
Group Member
Sat 22 Oct 2011 08:07:21 PM UTC, comment #8: 

Well, I don't think I can go any farther with this on my own.  I tried running gdb with debugging symbols installed (aptitude -t squeeze-backports install gnash-dbg; symbol-file /path/to/gtk-gnash before "run") but the bt output was the same as without the debugging  symbols.

Next I tried what I believe is the process for creating a debian package with debugging symbols compiled in:

  1. # aptitude -R build-dep gnash
  2. $ apt-get source gnash
  3. $ cd gnash-0.8.10~git20110618/
  4. $ DEB_BUILD_OPTIONS=nostrip,noopt dpkg-buildpackage -rfakeroot -uc -us


Everything was looking good until, about 3 hours later:



make[1]: Entering directory `/var/tmp/gnash-0.8.10~git20110618'
dh_strip --dbg-package=gnash-dbg
# lintian: python-debug-in-wrong-location
mv debian/gnash-dbg/usr/lib/debug/usr/lib/pyshared \
                debian/gnash-dbg/usr/lib/debug/usr/lib/pymodules
mv: cannot stat `debian/gnash-dbg/usr/lib/debug/usr/lib/pyshared': No such file or directory
make[1]: *** [override_dh_strip] Error 1
make[1]: Leaving directory `/var/tmp/gnash-0.8.10~git20110618'
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2


As far as  mv goes, there is no lib/ under debian/gnash-dbg/usr/, only a share/.

As for the rest,  I did a couple of web searches on the binary Error 2 and the dpkg-bldpkg exit status 2 error msgs, but didn't come up with anything I could understand, and I don't really have the time to learn about the whole make process and debian package building process at the present time.

Finding my way this far took me the better part of a day, so unless someone can help me figure out why my pkg didn't build, I'm afraid I can't take this any further on my end.

Anonymous
Fri 21 Oct 2011 06:01:57 PM UTC, comment #7: 

Install gnash-dbg (debug symbols)

Gabriele Giacone <gg0>
Group Member
Fri 21 Oct 2011 04:37:07 PM UTC, comment #6: 

Don't you'll be much happier with the valgrind output:

  1. vi gnash-debug-5.sh to replace "gdb --args" with "valgrind"
  2. $ ./gnash-debug-5.sh > gnash-valgrind-report_01.txt 2>&1
  3. $ cat gnash-valgrind-report_01.txt

**Segmentation fault
$

Going to try to get help compiling gnash package with debug symbols.  If I get that to work, will run with gdb --args again.

Anonymous
Fri 21 Oct 2011 03:57:06 PM UTC, comment #5: 

Ouch, that's indeed not that useful.
Maybe you can try with valgrind ?
Replace "gdb --args" with "valgrind" (and you need to have valgrind installed).
Valgrind report will be written on stderr, so you'll need to redirect that to a file:

./gnash-debug-5-valgrind.sh 2> valgrind-report.txt

Sandro Santilli <strk>
Group Member
Fri 21 Oct 2011 03:45:02 PM UTC, comment #4: 

I'm guessing this will fall into the not that useful category.  An interesting thing happened this run.  rather than crashing pretty much right away once the play button was pushed, I got a bunch of thumbnails across the bottom  of the screen that I could react with: moving the mouse over the row of thumbs caused the row to scroll left or right, but once I chose a thumbnail to click on, it crashed.  Never got that far before.

Anyway, given that the first part of this run seemed to my naive eyes  to be the same as the previously posted one, I'm only includeing the part from the segfault onwards.  here it is, inline:


[New LWP 10771]
[LWP 10771 exited]
[swscaler @ 0x4a673000] ALTIVEC: Color Space RGB24

Program received signal SIGSEGV, Segmentation fault.
0x1d6a8448 in ?? ()
(gdb) bt
#0  0x1d6a8448 in ?? ()
#1  0x1d6a7bf4 in ?? ()
#2  0x1ed62a04 in ?? ()
#3  0x1d4611fc in ?? ()
#4  0x1d4654e0 in ?? ()
#5  0x1d46644c in ?? ()
#6  0x1d737954 in ?? ()
#7  0x1d7388d4 in ?? ()
#8  0x1efbf7ac in ?? ()
#9  0x1efbfe90 in ?? ()
#10 0x1f373784 in ?? ()
#11 0x1f377ea4 in ?? ()
#12 0x1f378398 in ?? ()
#13 0x1f379e74 in ?? ()
#14 0x1f2795bc in ?? ()
#15 0x1f279970 in ?? ()#16 0x201fb20c in ?? ()
#17 0x2021c868 in ?? ()
#18 0x1fa23c70 in ?? ()
#19 0x1fa23350 in ?? ()
#20 0x1fa27ff8 in ?? ()
#21 0x1fa28614 in ?? ()
#22 0x1fde8b94 in ?? ()
---Type <return> to continue, or q <return> to quit---
#23 0x20216b64 in ?? ()
#24 0x2020785c in ?? ()
#25 0x201d688c in ?? ()
#26 0x201dc564 in ?? ()
#27 0x1eacb63c in ?? ()
#28 0x1eacb800 in ?? ()
#29 0x00000000 in ?? ()
(gdb)
(gdb) quit
A debugging session is active.

        Inferior 1 [process 10768] will be killed.

Quit anyway? (y or n) y
web21@ppc:/tmp$ exit
exit

Script done on Fri 21 Oct 2011 11:21:23 AM EDT


hope this helps

Anonymous
Fri 21 Oct 2011 07:28:54 AM UTC, comment #3: 

Wholly: once in the gdb prompt, after the segfault, you can type:
``bt'' to get a backtrace. Report (inline in a commit is fine) the result of that command.

I'm hoping you have a binary of gnash with debugging symbols in it, or won't be that helpful. If you do, you'll see filenames and line numbers in the backtrace. If you don't you'll have to build gnash yourself (which would be much better for further debugging anyway).

Sandro Santilli <strk>
Group Member
Thu 20 Oct 2011 10:49:52 PM UTC, comment #2: 

following strk suggestions on irc once again.

First, ran the 5th script with -vv, same results as before.

Next, added "gdb --args" to the beginning of the invocation of gtk-gnash.  Ran it inside of script session.  The script output is attached.  Summary: entered "run" at the prompt, then had to enter <return> 5 times to get to the launch of the gnash window.  Hit the play button on the player to get the errors.

(file #24176)

Anonymous
Thu 20 Oct 2011 07:35:31 PM UTC, comment #1: 

The powerpc is a big endian architecture, so it's probably a byte order problem. All the other platforms Gnash runs on happen to be little endian.

Rob Savoye <rsavoye>
Group administrator
Thu 20 Oct 2011 07:26:20 PM UTC, original submission:  

gnash 0.8.10 installed from backports on debian stable (6, squeeze) on powerpc (ibook, g4, early 2004) with iceweasel 3.5.16 as the browser.

though not tested with writelauncher as below, 0.8.8 also died with a grey screen upon pressing the play button of the video player. 0.8.8 is the version native to debian 6 squeeze.

When playing video from youtube or facebook, I can get as far as the player with the buttons and progress meter across the bottom, but clicking play, the screen goes grey and that's the end of things.

Following instructions provided by strk on the #gnash irc channel allowed me to come up with the information that follows.

  1. quit all instances of iceweasel.
  2. start iceweasel from command line:

 ** "GNASH_OPTIONS=writelauncher iceweasel &"

  1. try to play a video
  2. run the scripts /tmp/gnash-debug-[1-5].sh that are generated


The results of running the scripts are as follows:

/tmp/gnash-debug-1.sh
Opened a standalone gnash window with only a title bar and menu bar.

/tmp/gnash-debug-2.sh
Opened nothing but gave the error "Error: invalid url"

/tmp/gnash-debug-3.sh
Opened a window as for script 1 above except this window also had a screen area.

/tmp/gnash-debug-4.sh
Opened nothing but gave the error "Error: invalid url"

/tmp/gnash-debug-5.sh
Opened a window  as in 3 with player controls visible and a frame of the video visible.  Clicking play briefly started the little circle of turning dots telling me to wait, however, before anything played, the window disappeared with a seg fault and the following output on the console:


[swscaler @ 0x49612000] ALTIVEC: Color Space RGB24
Segmentation fault



The scripts /tmp/gnash-debug-[2-5].sh are attached to this bug report.  As I can only attach 4 files, the script /tmp/gnash-debug-1.sh, the shortest, is quoted here (it's 3 lines but the last one wrapped):


#!/bin/sh
export GNASH_COOKIES_IN=/tmp/gnash-cookies.7696
/usr/bin/gtk-gnash -U 'http://www.youtube.com/' -P 'allowfullscreen=false' -P 'allowscriptaccess=always' -P 'bgcolor=#FFFFFF' -P 'flashvars=enablejsapi=1' -P 'height=1' -P 'id=masthead_child' -P 'src=//s.ytimg.com/yt/swf/masthead_child-vflRMMO6_.swf' -P 'type=application/x-shockwave-flash' -P 'width=1' 'http://s.ytimg.com/yt/swf/masthead_child-vflRMMO6_.swf' $@


Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #24260:  gnash-dbg.script.14 added by None (14KiB - application/octet-stream)
file #24254:  gnash-dbg.script.11 added by None (13KiB - application/octet-stream)
file #24176:  gnash-dbg.script added by None (11KiB - application/octet-stream)
file #24172:  gnash-debug-2.sh added by None (9KiB - text/x-sh - follow-up: -email is unavailable-)
file #24173:  gnash-debug-4.sh added by None (9KiB - text/x-sh - follow-up: -email is unavailable-)
file #24174:  gnash-debug-3.sh added by None (9KiB - text/x-sh - follow-up: -email is unavailable-)
file #24175:  gnash-debug-5.sh added by None (9KiB - text/x-sh - follow-up: -email is unavailable-)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by gg0 (Posted a comment)
  • -email is unavailable- added by strk (Posted a comment)
  • -email is unavailable- added by strk (reporter)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 11 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2012-02-12 gg0 StatusNone Fixed
        Open/ClosedOpen Closed
    2011-10-31 None Attached File- Added gnash-dbg.script.14, #24260
    2011-10-31 None Attached File- Added gnash-dbg.script.11, #24254
    2011-10-21 strk Severity3 - Normal 4 - Important
    2011-10-21 strk Carbon-Copy- Added -email is unavailable-
    2011-10-20 None Attached File- Added gnash-dbg.script, #24176
    2011-10-20 None Attached File- Added gnash-debug-2.sh, #24172
        Attached File- Added gnash-debug-4.sh, #24173
        Attached File- Added gnash-debug-3.sh, #24174
        Attached File- Added gnash-debug-5.sh, #24175

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code