As a security precaution, we have turned on the setting "Require API key authentication for API requests" for everyone. If this has broken something, please contact bugzilla-admin@mozilla.org
Last Comment Bug 678938 - "ABORT: Shouldn't have current interval in startup or postactive states"
: "ABORT: Shouldn't have current interval in startup or postactive states"
Status: RESOLVED FIXED
: assertion, testcase
Product: Core
Classification: Components
Component: SVG (show other bugs)
: Trunk
: All All
: -- normal (vote)
: mozilla9
Assigned To: Brian Birtles (:birtles, away most of Jan 21 - Feb 1)
:
: Jet Villegas (:jet)
Mentors:
Depends on:
Blocks: 326633
  Show dependency treegraph
 
Reported: 2011-08-14 23:08 PDT by Jesse Ruderman
Modified: 2011-09-05 18:13 PDT (History)
3 users (show)
bbirtles: in‑testsuite+
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
testcase (asserts fatally when loaded) (273 bytes, image/svg+xml)
2011-08-14 23:08 PDT, Jesse Ruderman
no flags Details
stack trace (2.46 KB, text/plain)
2011-08-14 23:09 PDT, Jesse Ruderman
no flags Details
Patch v1a (3.35 KB, patch)
2011-08-30 19:00 PDT, Brian Birtles (:birtles, away most of Jan 21 - Feb 1)
dholbert: review+
Details | Diff | Splinter Review

Description User image Jesse Ruderman 2011-08-14 23:08:50 PDT
Created attachment 553115 [details]
testcase (asserts fatally when loaded)

###!!! ABORT: Shouldn't have current interval in startup or postactive states: '!mCurrentInterval', file content/smil/nsSMILTimedElement.cpp, line 576
Comment 1 User image Jesse Ruderman 2011-08-14 23:09:13 PDT
Created attachment 553116 [details]
stack trace
Comment 2 User image Jesse Ruderman 2011-08-14 23:13:53 PDT
Harmless in opt
Comment 3 User image Brian Birtles (:birtles, away most of Jan 21 - Feb 1) 2011-08-30 19:00:20 PDT
Created attachment 557068 [details] [diff] [review]
Patch v1a

Proposed patch with testcase

The problem is we were calling Rewind -> ClearIntervals -> ResetCurrentInterval

Inside ResetCurrentInterval, when we unlink the current interval, we can get callbacks that actually set the current interval again, right after we cleared it. That is, there is no guarantee that at the end of a call to ResetCurrentInterval, mCurrentInterval will be nsnull, just that the previously-current interval (if any) will have been cleared. Likewise for ClearIntervals.

However, Rewind was assuming that mCurrentInterval would be nsnull. That was probably valid a while back since when we were setting mElementState to STATE_STARTUP in advance since so long as we're in the startup state we won't bother updating the current interval and mCurrentInterval will stay nsnull. However, when we refactored out ClearIntervals we made it change the state to STATE_POSTACTIVE which meant that assumption no longer held.
(http://hg.mozilla.org/mozilla-central/rev/6dffbe5e1b5f)

For now, I've made it set the state to STATE_STARTUP before clearing the intervals so we'll ignore any attempts to update the current interval from that point on.
Comment 4 User image Brian Birtles (:birtles, away most of Jan 21 - Feb 1) 2011-08-30 19:02:47 PDT
By the way, I reshuffled a couple of lines in content/smil/crashtests/crashtests.list because the numbering got out of sequence somehow. I just thought I'd fix it while I was already touching that file.
Comment 5 User image Brian Birtles (:birtles, away most of Jan 21 - Feb 1) 2011-09-01 16:18:41 PDT
Pushed to m-i:
http://hg.mozilla.org/integration/mozilla-inbound/rev/b6608d4de5f7

Note You need to log in before you can comment on or make changes to this bug.