Closed
Bug 1350340
Opened 8 years ago
Closed 8 years ago
Assertion failure: !animation.startTime().IsNull() || animation.isNotPlaying() (Failed to resolve start time of play-pending animations)
Categories
(Core :: DOM: Animation, defect, P3)
Core
DOM: Animation
Tracking
()
RESOLVED
WORKSFORME
| Tracking | Status | |
|---|---|---|
| firefox55 | --- | fixed |
People
(Reporter: truber, Unassigned)
References
Details
(Keywords: assertion, testcase)
Attachments
(1 file)
|
428 bytes,
text/html
|
Details |
The attached testcase asserts in mozilla-central rev 4c987b7ed54a.
Assertion failure: !animation.startTime().IsNull() || animation.isNotPlaying() (Failed to resolve start time of play-pending animations), at /home/worker/workspace/build/src/gfx/layers/AnimationHelper.cpp:155
#01: mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage*, mozilla::TimeStamp, uint64_t*)::<lambda(mozilla::layers::Layer*)>, mozilla::layers::ForEachNode(Node, const PreAction&) [with Iterator = mozilla::layers::ForwardIterator; Node = mozilla::layers::Layer*; PreAction = mozilla::layers::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage*, mozilla::TimeStamp, uint64_t*)::<lambda(mozilla::layers::Layer*)>; typename mozilla::EnableIf<mozilla::IsSame<decltype (aPreAction(aRoot)), void>::value, void>::Type = void]::<lambda(mozilla::layers::Layer*)> > at gfx/layers/composite/AsyncCompositionManager.cpp:667
#02: mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage*, mozilla::TimeStamp, uint64_t*)::<lambda(mozilla::layers::Layer*)>, mozilla::layers::ForEachNode(Node, const PreAction&) [with Iterator = mozilla::layers::ForwardIterator; Node = mozilla::layers::Layer*; PreAction = mozilla::layers::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage*, mozilla::TimeStamp, uint64_t*)::<lambda(mozilla::layers::Layer*)>; typename mozilla::EnableIf<mozilla::IsSame<decltype (aPreAction(aRoot)), void>::value, void>::Type = void]::<lambda(mozilla::layers::Layer*)> > at gfx/layers/TreeTraversal.h:142
#03: mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage*, mozilla::TimeStamp, uint64_t*)::<lambda(mozilla::layers::Layer*)>, mozilla::layers::ForEachNode(Node, const PreAction&) [with Iterator = mozilla::layers::ForwardIterator; Node = mozilla::layers::Layer*; PreAction = mozilla::layers::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage*, mozilla::TimeStamp, uint64_t*)::<lambda(mozilla::layers::Layer*)>; typename mozilla::EnableIf<mozilla::IsSame<decltype (aPreAction(aRoot)), void>::value, void>::Type = void]::<lambda(mozilla::layers::Layer*)> > at gfx/layers/TreeTraversal.h:142
#04: mozilla::layers::AsyncCompositionManager::TransformShadowTree at gfx/layers/composite/AsyncCompositionManager.cpp:681
#05: mozilla::layers::CompositorBridgeParent::CompositeToTarget at gfx/layers/ipc/CompositorBridgeParent.cpp:985
#06: mozilla::layers::CompositorVsyncScheduler::Composite at gfx/layers/ipc/CompositorVsyncScheduler.cpp:259
#07: mozilla::detail::RunnableMethodImpl<mozilla::layers::CompositorVsyncScheduler*, void (mozilla::layers::CompositorVsyncScheduler::*)(mozilla::TimeStamp), true, true, mozilla::TimeStamp>::Run at xpcom/threads/nsThreadUtils.h:893
#08: MessageLoop::RunTask at mfbt/RefPtr.h:62
#09: MessageLoop::DeferOrRunPendingTask at ipc/chromium/src/base/message_loop.cc:366
#10: MessageLoop::DoWork at ipc/chromium/src/base/message_loop.cc:441
#11: base::MessagePumpDefault::Run at ipc/chromium/src/base/message_pump_default.cc:37
#12: MessageLoop::RunInternal at ipc/chromium/src/base/message_loop.cc:239
#13: MessageLoop::Run at ipc/chromium/src/base/message_loop.cc:502
#14: base::Thread::ThreadMain at ipc/chromium/src/base/thread.cc:182
#15: ThreadFunc at ipc/chromium/src/base/platform_thread_posix.cc:40
Flags: in-testsuite?
Comment 1•8 years ago
|
||
Totally guessing here but I notice the negative delay in the test is = -2^42 - 1 so I suspect we're hitting a case where that ends up being converted to INT64_MIN ticks. Normally we wouldn't ship that to the compositor (since it has passed) but the call to reverse() means we do. Then I guess that we end up recognizing that value as -Forever, converting it to a delay of -Infinity, and somewhere our time calculations go haywire.
If that's the case, maybe it's ok to leave that value as infinity and just tighten up our timing calculations to handle infinite values?
Updated•8 years ago
|
Priority: -- → P3
| Reporter | ||
Comment 3•8 years ago
|
||
This no longer reproduces for me in mozilla-central rev b0ff0c5c0a35.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Comment 4•8 years ago
|
||
WFM if we don't know the specific commit that fixed it.
Resolution: FIXED → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•