Closed
Bug 1164557
Opened 9 years ago
Closed 9 years ago
Assertion failure in Axis::StartOverscrollAnimation()
Categories
(Core :: Panning and Zooming, defect)
Tracking
()
RESOLVED
FIXED
mozilla41
Tracking | Status | |
---|---|---|
firefox41 | --- | fixed |
People
(Reporter: botond, Assigned: botond)
Details
Attachments
(3 files, 1 obsolete file)
The assertion in Axis::StartOverscrollAnimation(), which I added in bug 1152051, fired for me while panning and zooming around on http://people.mozilla.org/~bballo/iframe.html. Relevant part of stack trace: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 2474.2533] 0xb452cdc2 in StartOverscrollAnimation (this=<optimized out>, aVelocity=<optimized out>) at ../../../gfx/layers/apz/src/Axis.cpp:237 warning: Source file is more recent than executable. 237 MOZ_ASSERT(mFirstOverscrollAnimationSample == 0 && (gdb) i s #0 0xb452cdc2 in StartOverscrollAnimation (this=<optimized out>, aVelocity=<optimized out>) at ../../../gfx/layers/apz/src/Axis.cpp:237 #1 mozilla::layers::Axis::StartOverscrollAnimation (this=<optimized out>, aVelocity=<optimized out>) at ../../../gfx/layers/apz/src/Axis.cpp:235 #2 0xb452efb0 in OverscrollAnimation (aVelocity=..., aApzc=..., this=0xaa48ab00) at ../../../gfx/layers/apz/src/AsyncPanZoomController.cpp:661 #3 mozilla::layers::AsyncPanZoomController::StartOverscrollAnimation (this=this@entry=0xa8381000, aVelocity=...) at ../../../gfx/layers/apz/src/AsyncPanZoomController.cpp:2237 #4 0xb452efec in mozilla::layers::AsyncPanZoomController::SnapBackIfOverscrolled (this=this@entry=0xa8381000) at ../../../gfx/layers/apz/src/AsyncPanZoomController.cpp:2470 #5 0xb452f020 in mozilla::layers::OverscrollHandoffChain::SnapBackOverscrolledApzc (this=0xaaf338e0, aStart=<optimized out>) at ../../../gfx/layers/apz/src/OverscrollHandoffState.cpp:110 #6 0xb41edb62 in DispatchToMethod<IPC::Channel, bool (IPC::Channel::*)(IPC::Message*), IPC::Message*> (arg=..., method= (bool (IPC::Channel::*)(IPC::Channel * const, IPC::Message *)) 0xb452f001 <mozilla::layers::OverscrollHandoffChain::SnapBackOverscrolledApzc(mozilla::layers::AsyncPanZoomController const*) const>, obj=0xaaf338e0) at ../../../ipc/chromium/src/base/tuple.h:393 #7 RunnableMethod<IPC::Channel, bool (IPC::Channel::*)(IPC::Message*), Tuple1<IPC::Message*> >::Run (this=<optimized out>) at ../../../ipc/chromium/src/base/task.h:310 #8 0xb4533dc2 in mozilla::layers::AsyncPanZoomController::AdvanceAnimations (this=0xa871a000, aSampleTime=...) at ../../../gfx/layers/apz/src/AsyncPanZoomController.cpp:2692 #9 0xb4546c68 in mozilla::layers::SampleAPZAnimations (aLayer=..., aSampleTime=...) at ../../../gfx/layers/composite/AsyncCompositionManager.cpp:542
Assignee | ||
Comment 1•9 years ago
|
||
I've also seen the 'MOZ_ASSERT(mOverscroll <= 0)' in Axis::OverscrollBy() to fire. Not sure if that's related.
Assignee | ||
Comment 2•9 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #1) > I've also seen the 'MOZ_ASSERT(mOverscroll <= 0)' in Axis::OverscrollBy() to > fire. Not sure if that's related. This is pretty priceless: Axis::DisplacementWillOverscrollAmount() is reporting that a requested displacement of 0 causes overscroll of 0.000122, due to pre-existing rounding error that causes the values of GetCompositionEnd() and GetPageEnd() to differ by that amount. If this happens while we're already overscrolled in the negative direction, attempting to overscroll by 0.000122 asserts.
Assignee | ||
Comment 3•9 years ago
|
||
/r/8713 - Bug 1164557 - Do not start an overscroll animation if one is already running. r=kats /r/8715 - Bug 1164557 - Use COORDINATE_EPSILON in IsZero(). r=kats /r/8717 - Bug 1164557 - Weed out spurious calls to Axis::OverscrollBy() caused by rounding error r=kats Pull down these commits: hg pull -r 3e7346c25dd230c7dac46a09777bbb10577922e9 https://reviewboard-hg.mozilla.org/gecko/
Attachment #8605454 -
Flags: review?(bugmail.mozilla)
Assignee | ||
Comment 4•9 years ago
|
||
The first patch fixes the assertion in comment 0. The problem there was that if a child scrollable was flung while a parent scrollable was doing an overscroll animation, the SnapBackOverscrolledApzc() call at the end of the child's fling could trigger a new overscroll animation on the parent. The fix is to only start on overscroll animation in SnapBackIfOverscrolled() if there isn't already an overscroll animation in progress. The second and third patches fix the assertion in comment 1. The second patch alone isn't sufficient, because the overscroll could have the spurious near-zero amount in one coordinate only, and IsZero(), which checks both coordinates of a point, doesn't weed that out. (Given the third patch, the second patch then isn't strictly necessary, but I think it's good to use COORDINATE_EPSILON consistently.)
Assignee | ||
Updated•9 years ago
|
Assignee: nobody → botond
Comment 5•9 years ago
|
||
https://reviewboard.mozilla.org/r/8713/#review7503
Comment 6•9 years ago
|
||
https://reviewboard.mozilla.org/r/8717/#review7505 Ship It!
Comment 7•9 years ago
|
||
https://reviewboard.mozilla.org/r/8715/#review7507 A little uneasy about this one since it affects more callsites than the one we care about for this bug, but after looking at them all I can't think of anything that might break as a result.
Comment 8•9 years ago
|
||
Comment on attachment 8605454 [details] MozReview Request: bz://1164557/botond https://reviewboard.mozilla.org/r/8711/#review7509
Attachment #8605454 -
Flags: review?(bugmail.mozilla) → review+
Assignee | ||
Comment 9•9 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=9cdfbf778323
Comment 10•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/c65b97cfc0c7 https://hg.mozilla.org/integration/mozilla-inbound/rev/95650b6fd83c https://hg.mozilla.org/integration/mozilla-inbound/rev/b26cefc284b0
Comment 11•9 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/c65b97cfc0c7 https://hg.mozilla.org/mozilla-central/rev/95650b6fd83c https://hg.mozilla.org/mozilla-central/rev/b26cefc284b0
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
Assignee | ||
Comment 12•9 years ago
|
||
Attachment #8605454 -
Attachment is obsolete: true
Attachment #8620282 -
Flags: review+
Attachment #8620283 -
Flags: review+
Attachment #8620284 -
Flags: review+
Assignee | ||
Comment 13•9 years ago
|
||
Assignee | ||
Comment 14•9 years ago
|
||
Assignee | ||
Comment 15•9 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•