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:  core Severity:  3 - Normal
Release:  None Status:  Wont Fix
Privacy:  Public Assigned 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)

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 Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


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

    Do you think this task is very important?
    If so, you can 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 UTC bjacques StatusNone => Wont Fix
        Open/ClosedOpen => Closed

    Back to the top

    Powered by Savane 3.3