bugGnash - The GNU Flash player - Bugs: bug #23318, Crashing with an assertion error...


bug #23318: Crashing with an assertion error with the latest snap

Submitted by:  Brad Smith <brad0>
Submitted on:  Thu 22 May 2008 05:21:42 AM UTC  
Category: coreSeverity: 3 - Normal
Release: NoneStatus: Wont Fix
Privacy: PublicAssigned to: None
Open/Closed: Closed

Add a New Comment(Rich Markup)

You are not logged in

Please log in, so followups can be emailed to you.


(Jump to the original submission Jump to the original submission)

Mon 26 May 2008 11:38:43 PM UTC, comment #8:

Problem solved -

Telling boost to use libpthread instead of libstdc++ for atomic counters stops the assertion error.

This can be done either by using -DBOOST_AC_USE_PTHREAD at compile time, or including <boost/detail/atomic_count_pthreads.hpp> directly (instead of <boost/detail/atomic_count.hpp>)

Deanna Phillips <deanna>
Mon 26 May 2008 08:37:54 PM UTC, comment #7:

There was some speculation that this might be related to a broken libbboost_thread on OpenBSD. I just ran the boost 1.34.1 regression test for the thread lib and all tests passed.

We do have some boost date_time failures, but AFAICS gnash doesn't use date_time yet.

Deanna Phillips <deanna>
Sun 25 May 2008 05:55:45 PM UTC, comment #6:

However, Deanna tested that the assertion still fails with LOAD_MOVIES_IN_A_SEPARATE_THREAD undefined.

Bastiaan Jacques <bjacques>
Project Member
Sun 25 May 2008 05:38:22 PM UTC, comment #5:

Perhaps it is related to this Helgrind output:

==13431== Possible data race during write of size 1 at 0x51108D4
==13431== at 0x468BAF5: gnash::movie_def_impl::~movie_def_impl() (movie_def_impl.cpp:229)
==13431== by 0x80AF8F6: gnash::ref_counted::drop_ref() const (ref_counted.h:87)
==13431== by 0x80AF92B: gnash::intrusive_ptr_release(gnash::ref_counted const*) (smart_ptr.h:65)
==13431== by 0x80AF96C: boost::intrusive_ptr<gnash::movie_definition>::~intrusive_ptr() (intrusive_ptr.hpp:83)
==13431== by 0x80A7E53: gnash::Gui::~Gui() (gui.cpp:161)
==13431== by 0x80CB3D4: gnash::GtkGui::~GtkGui() (gtk.cpp:97)
==13431== by 0x80BE59D: std::auto_ptr<gnash::Gui>::~auto_ptr() (auto_ptr.h:173)
==13431== by 0xC3663D: exit (exit.c:75)
==13431== by 0xC20397: (below main) (libc-start.c:252)
==13431== Old state: owned exclusively by thread #2
==13431== New state: shared-modified by threads #1, #2
==13431== Reason: this thread, #1, holds no locks at all

Bastiaan Jacques <bjacques>
Project Member
Sun 25 May 2008 03:48:51 PM UTC, comment #4:

I can reproduce this with HEAD and with strk's patch #6524 applied. I also tried backing up to boost 1.33.1 and the problem remains.

Deanna Phillips <deanna>
Fri 23 May 2008 02:52:41 AM UTC, comment #3:

This was definitely a clean build built with no optimization and debug symbols.

schild.swf was some random Flash file I had around but I experienced the same crash with a bunch of other Flash files I have. All of these files worked with 0.8.2.

Brad Smith <brad0>
Fri 23 May 2008 02:17:51 AM UTC, comment #2:

what is schild.swf?

Zou Lunkai <zoulunkai>
Thu 22 May 2008 03:52:48 PM UTC, comment #1:

ref_counted.h assertions often come from a bad build tree. If you weren't building from a fresh checkout / make distclean, can you do so and see if you still get the failure?

See bug #23142 for a similar example (though not exactly the same) - I've also had the same problem in the past.

Benjamin Wolsey <bwy>
Project Member
Thu 22 May 2008 05:21:42 AM UTC, original submission:

Using the latest snap from the 21st results in crashing with an
assertion error when loading Flash files with the standalone player.

$ gnash schild.swf
RcInitFile: couldn't open file: /etc/gnashrc
RcInitFile: parsing /home/brad/.gnashrc
Warning: unrecognized directive "splash_screen" in rcfile /home/brad/.gnashrc line 2
assertion "m_ref_count >= 0" failed: file "../libbase/ref_counted.h", line 77, function "add_ref"
Abort trap (core dumped)

#0 0x08dac5e1 in kill () from /usr/lib/libc.so.44.0
#1 0x08de4df3 in abort () at /usr/src/lib/libc/stdlib/abort.c:68
#2 0x08d85947 in __assert2 (file=0x3c0031fd "../libbase/ref_counted.h", line=77, func=0x3c0031e4 "add_ref",
failedexpr=0x3c0031ec "m_ref_count >= 0") at /usr/src/lib/libc/gen/assert.c:52
#3 0x1c08fedc in gnash::ref_counted::add_ref() const (this=0x84f10400) at ref_counted.h:77
#4 0x1c08bcbd in intrusive_ptr_add_ref (o=0x84f10400) at smart_ptr.h:59
#5 0x1c08a97f in intrusive_ptr (this=0xcfbef860, p=0x84f10400, add_ref=true) at intrusive_ptr.hpp:64
#6 0x1c08b8ea in boost::intrusive_ptr<gnash::movie_definition>::operator=(gnash::movie_definition*) (this=0xcfbef8a0,
rhs=0x84f10400) at intrusive_ptr.hpp:104
#7 0x095b9a13 in gnash::MovieLibrary::add(std::string const&, gnash::movie_definition*) (this=0x293b6a6c,
key=@0xcfbef970, mov=0x84f10400) at impl.cpp:709
#8 0x095b89c1 in gnash::create_library_movie(gnash::URL const&, char const, bool, std::string const) (url=@0xcfbef9d0,
real_url=0x859c38b4 "schild.swf", startLoaderThread=false, postdata=0x0) at impl.cpp:826
#9 0x1c091f72 in gnash::Player::load_movie() (this=0xcfbefb90) at Player.cpp:263
#10 0x1c0927a6 in gnash::Player::run(int, char**, std::string const&, std::string const&) (this=0xcfbefb90, argc=2,
argv=0xcfbefc4c, infile=@0xcfbefb50, url=@0xcfbefb70) at Player.cpp:354
#11 0x1c078c15 in main (argc=2, argv=0xcfbefc4c) at gnash.cpp:455

Brad Smith <brad0>


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

Attach File(s):

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by bjacques (Posted a comment)
  • -unavailable- added by deanna (Posted a comment)
  • -unavailable- added by zoulunkai (Posted a comment)
  • -unavailable- added by bwy (Posted a comment)
  • -unavailable- added by brad0 (Submitted the item)

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.


    Please enter the title of George Orwell's famous dystopian book (it's a date):



    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 27 May 2008 12:10:17 AM UTCbjacquesStatusNone=>Wont Fix

    Back to the top

    Powered by Savane 3.1-cleanup1