bugGnash - The GNU Flash player - Bugs: bug #23946, Uncaught ActionLimitsException

 
 

bug #23946: Uncaught ActionLimitsException

Submitted by:  Benjamin Wolsey <bwy>
Submitted on:  Mon 28 Jul 2008 08:48:44 AM UTC  
 
Category: NoneSeverity: 5 - Blocker
Release: NoneStatus: Fixed
Privacy: PublicAssigned to: Benjamin Wolsey <bwy>
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)

Tue 29 Jul 2008 08:17:10 PM UTC, comment #6:

Confirm strk's fix to as array, and I've moved the try/catch to movie_root::advance() so that infinite loops won't crash Gnash any more.

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.
Mon 28 Jul 2008 03:34:35 PM UTC, comment #5:

err, wasn't ::shift but ::shiftElementsLeft.
I have a fix locally, and few testcases, needs improvement in the tests.
Affected every case in which shiftElementsLeft is called
with a count == elements count.

Sandro Santilli <strk>
Project Member
Mon 28 Jul 2008 03:25:30 PM UTC, comment #4:

boost::numeric::ublas::mapped_vector<>::clear() does NOT change .size() ... eh...

The only occurrence of call to .clear() is in ::shift.

Sandro Santilli <strk>
Project Member
Mon 28 Jul 2008 03:14:32 PM UTC, comment #3:

Very useful log...
The bug seems this:

a=new array(1);
trace(a.length); // traces 1, correctly
trace(a.shift()); // traces undefined, correctly
trace(a.length); // should be 0, gnash traces 1...

Sandro Santilli <strk>
Project Member
Mon 28 Jul 2008 02:58:48 PM UTC, comment #2:

Yes, I'll look at catching the exception, although it might also be an opportunity to replace the loop count with a timer.

The other thing is why the exception is thrown here; I'm attaching the log of the loop.

(file #16201)

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.
Mon 28 Jul 2008 02:41:08 PM UTC, comment #1:

movie_root::executeTimers used to be wrapped in the try/catch
inside movie_root::advanceMovie.

Was moved in outside of it and into movie_root::advance
since introduction of the heart-beating mechanism.
So does likely just need wrapping in there.

Sandro Santilli <strk>
Project Member
Mon 28 Jul 2008 08:48:44 AM UTC, original submission:

terminate called after throwing an instance of 'gnash::ActionLimitException'
what(): Loop iterations count exceeded limit of 65536. Last branch was from pc 1374 to 907.

gtk-gnash -vv -P "flashvars=path=http://www.realclearpolitics.com/epolls/charts/&settings_file=http%3A//www.realclearpolitics.com/epolls/charts/225_settings.xml&data_file=http%3A//www.realclearpolitics.com/epolls/charts/225.xml" http://www.realclearpolitics.com/epolls/charts/amline.swf

#5 0x00002af33b207031 in __cxa_rethrow () from /usr/lib64/libstdc++.so.6
#6 0x00002af33ba4658c in gnash::swf_function::operator() (this=0xac89b0,
fn=@0x7fff6fb7c2d0)
at /home/benjamin/Download/gnash/trunk/libcore/swf_function.cpp:372
#7 0x00002af33bbbb0ef in gnash::call_method (method=<value optimized out>,
env=0x7fff6fb7c390, this_ptr=0xac84b0, nargs=1, first_arg_bottom_index=0,
super=0x0) at /home/benjamin/Download/gnash/trunk/libcore/vm/action.cpp:72
#8 0x00002af33b9b78a9 in gnash::as_object::callMethod (this=0xac84b0,
methodName=<value optimized out>, arg0=@0x7fff6fb7c540)
at /home/benjamin/Download/gnash/trunk/libcore/as_object.cpp:1295
#9 0x00002af33baf61c5 in xml_ondata (fn=dwarf2_read_address: Corrupted DWARF expression.
)
at /home/benjamin/Download/gnash/trunk/libcore/asobj/xml.cpp:985
#10 0x00002af33b9b4528 in gnash::builtin_function::operator() (this=0xac7c20,
fn=@0x7fff6fb7c780)
at /home/benjamin/Download/gnash/trunk/libcore/builtin_function.h:87
#11 0x00002af33bbbb0ef in gnash::call_method (method=<value optimized out>,
---Type <return> to continue, or q <return> to quit---
env=0x7fff6fb7c840, this_ptr=0xac84b0, nargs=1, first_arg_bottom_index=0,
super=0x0) at /home/benjamin/Download/gnash/trunk/libcore/vm/action.cpp:72
#12 0x00002af33b9b78a9 in gnash::as_object::callMethod (this=0xac84b0,
methodName=<value optimized out>, arg0=@0x7fff6fb7c9d0)
at /home/benjamin/Download/gnash/trunk/libcore/as_object.cpp:1295
#13 0x00002af33baf5573 in gnash::XML::checkLoads (this=0xac84b0)
at /home/benjamin/Download/gnash/trunk/libcore/asobj/xml.cpp:534
#14 0x00002af33baf5656 in gnash::XML::checkLoads_wrapper (
fn=<value optimized out>)
at /home/benjamin/Download/gnash/trunk/libcore/asobj/xml.cpp:566
#15 0x00002af33b9b4528 in gnash::builtin_function::operator() (this=0xae1170,
fn=@0x7fff6fb7cc40)
at /home/benjamin/Download/gnash/trunk/libcore/builtin_function.h:87
#16 0x00002af33bbbb0ef in gnash::call_method (method=<value optimized out>,
env=0x7fff6fb7cd20, this_ptr=0xac84b0, nargs=0, first_arg_bottom_index=-1,
super=0xa81ce0)
at /home/benjamin/Download/gnash/trunk/libcore/vm/action.cpp:72
#17 0x00002af33ba8b730 in gnash::Timer::execute (this=0xae1430)
at /home/benjamin/Download/gnash/trunk/libcore/timers.cpp:173
#18 0x00002af33ba8ba15 in gnash::Timer::executeAndReset (this=0xae1430)
at /home/benjamin/Download/gnash/trunk/libcore/timers.cpp:116
#19 0x00002af33b9f6c79 in gnash::movie_root::executeTimers (this=0x961a60)
at /home/benjamin/Download/gnash/trunk/libcore/movie_root.cpp:1768

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.

 

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

Attach File(s):
   
   
Comment:
   

Attached Files
file #16201:  loop added by bwy (36KiB - application/octet-stream)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by strk (Posted a comment)
  • -unavailable- added by bwy (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 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 29 Jul 2008 08:17:10 PM UTCbwyStatusNone=>Fixed
      Open/ClosedOpen=>Closed
    Mon 28 Jul 2008 02:58:48 PM UTCbwyAttached File-=>Added loop, #16201

    Back to the top


    Powered by Savane 3.1-cleanup1