Wed 03 Sep 2008 01:35:45 PM UTC, original submission:
./configure --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --enable-visibility --disable-cygnal --disable-ghelp --disable-kparts --enable-nsapi --disable-i810-lod-bias --disable-mit-shm --enable-gui=gtk --without-included-ltdl --with-ltdl-include=/usr/include --with-ltdl-lib=/usr/lib64 --with-npapi-plugindir=/opt/netscape/plugins --enable-renderer=ogl --enable-media=gst --libdir=/usr/lib64 --build=x86_64-pc-linux-gnu
My problem:
Sometimes gnash leads firefox to segfault on page change.
Executing these .swf files with gtk-gnash I get a SIGABRT on exit.
Checking with gdb tells me that the CurlSession object is destroyed before a CurlStreamFile object. Now that the CurlSession object initilizes and destroys libcurl access with curl_global_init and curl_global_cleanup the SIGABRT is to be expected, I guess.
How to reproduce:
$ gdb /usr/bin/gtk-gnash
(gdb) set args http://content.yieldmanager.edgesuite.net/atoms/2b/91/2b91dd731702bbac41f5304886acba64.swf
(gdb) break lockSharedHandle
(gdb) break unlockSharedHandle
(gdb) run
(gdb) c
# repeat 11 times in total
Breakpoint 3, gnash::curl_adapter::CurlSession::lockSharedHandle (this=0x7f16c0509520, handle=0x0, data=CURL_LOCK_DATA_SHARE, access=CURL_LOCK_ACCESS_SINGLE) at curl_adapter.cpp:273
273 in curl_adapter.cpp
(gdb)
Continuing.
Breakpoint 4, gnash::curl_adapter::CurlSession::unlockSharedHandle (this=0x7f16c0509520, handle=0x0, data=CURL_LOCK_DATA_SHARE) at curl_adapter.cpp:311
311 in curl_adapter.cpp
(gdb) bt
#0 gnash::curl_adapter::CurlSession::unlockSharedHandle (this=0x7f16c0509520, handle=0x0, data=CURL_LOCK_DATA_SHARE) at curl_adapter.cpp:311
#1 0x00007f16bc18085b in curl_share_cleanup () from /usr/lib/libcurl.so.4
#2 0x00007f16c02daaf7 in ~CurlSession (this=0x7f16c0509520) at curl_adapter.cpp:194
#3 0x00007f16bde6718d in exit () from /lib/libc.so.6
#4 0x00007f16bde4f48d in __libc_start_main () from /lib/libc.so.6
#5 0x0000000000413e59 in _start ()
(gdb) c
Continuing.
Breakpoint 3, gnash::curl_adapter::CurlSession::lockSharedHandle (this=0x7f16c0509520, handle=0x1270460, data=CURL_LOCK_DATA_COOKIE, access=CURL_LOCK_ACCESS_SINGLE)
at curl_adapter.cpp:273
273 in curl_adapter.cpp
(gdb) bt
#0 gnash::curl_adapter::CurlSession::lockSharedHandle (this=0x7f16c0509520, handle=0x1270460, data=CURL_LOCK_DATA_COOKIE, access=CURL_LOCK_ACCESS_SINGLE) at curl_adapter.cpp:273
#1 0x00007f16bc18079f in Curl_share_lock () from /usr/lib/libcurl.so.4
#2 0x00007f16bc16df5a in ?? () from /usr/lib/libcurl.so.4
#3 0x00007f16bc170f94 in Curl_close () from /usr/lib/libcurl.so.4
#4 0x00007f16c02da38d in ~CurlStreamFile (this=0x1258950) at curl_adapter.cpp:892
#5 0x00007f16c02e3977 in ~InflaterIOChannel (this=0x1289070) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.1/include/g++-v4/backward/auto_ptr.h:173
#6 0x00007f16c07590a0 in ~SWFMovieDefinition (this=0x1288c50) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.1/include/g++-v4/backward/auto_ptr.h:173
#7 0x000000000041fad6 in ~Gui (this=0xf96fe0) at ../libbase/ref_counted.h:87
#8 0x000000000042ff42 in ~GtkGui (this=0xf96fe0) at gtk.cpp:93
#9 0x00007f16bde6718d in exit () from /lib/libc.so.6
#10 0x00007f16bde4f48d in __libc_start_main () from /lib/libc.so.6
#11 0x0000000000413e59 in _start ()
(gdb) c
Continuing.
Program received signal SIGABRT, Aborted.
|