Open Bug 1673657 Opened 4 years ago Updated 2 years ago

Assertion failure: previousValue->Transform() .mTransformInDevSpace.FuzzyEqualsMultiplicative( transformInDevice), at /builds/worker/checkouts/gecko/gfx/layers/CompositorAnimationStorage.cpp:630

Categories

(Core :: Graphics: Layers, defect)

defect

Tracking

()

Tracking Status
firefox84 --- affected

People

(Reporter: jkratzer, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase, Whiteboard: [bugmon:confirmed])

Attachments

(1 file)

Attached file testcase.html

Testcase found while fuzzing mozilla-central rev f9a6da3ea564 (built with --enable-debug).

Assertion failure: previousValue->Transform() .mTransformInDevSpace.FuzzyEqualsMultiplicative( transformInDevice), at /builds/worker/checkouts/gecko/gfx/layers/CompositorAnimationStorage.cpp:630

    #0 0x7f33b9825f02 in operator() /builds/worker/checkouts/gecko/gfx/layers/CompositorAnimationStorage.cpp:628:13
    #1 0x7f33b9825f02 in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*)>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*) const&) /builds/worker/checkouts/gecko/gfx/layers/TreeTraversal.h:139:3
    #2 0x7f33b9825cba in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*)>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*) const&) /builds/worker/checkouts/gecko/gfx/layers/TreeTraversal.h:143:5
    #3 0x7f33b9825cba in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*)>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*) const&) /builds/worker/checkouts/gecko/gfx/layers/TreeTraversal.h:143:5
    #4 0x7f33b9825cba in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*)>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*) const&) /builds/worker/checkouts/gecko/gfx/layers/TreeTraversal.h:143:5
    #5 0x7f33b9825cba in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*)>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*) const&) /builds/worker/checkouts/gecko/gfx/layers/TreeTraversal.h:143:5
    #6 0x7f33b9825cba in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*)>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*) const&) /builds/worker/checkouts/gecko/gfx/layers/TreeTraversal.h:143:5
    #7 0x7f33b9825cba in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*)>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&, std::enable_if<std::is_same_v<decltype(fp0(fp)), void>, void>::type mozilla::layers::ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10>(mozilla::layers::Layer*, mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp)::$_10 const&)::'lambda'(mozilla::layers::Layer*) const&) /builds/worker/checkouts/gecko/gfx/layers/TreeTraversal.h:143:5
    #8 0x7f33b9819120 in ForEachNode<mozilla::layers::ForwardIterator, mozilla::layers::Layer *, (lambda at /builds/worker/checkouts/gecko/gfx/layers/CompositorAnimationStorage.cpp:529:39)> /builds/worker/checkouts/gecko/gfx/layers/TreeTraversal.h:166:3
    #9 0x7f33b9819120 in mozilla::layers::CompositorAnimationStorage::SampleAnimations(mozilla::layers::Layer*, mozilla::layers::CompositorBridgeParent*, mozilla::TimeStamp, mozilla::TimeStamp) /builds/worker/checkouts/gecko/gfx/layers/CompositorAnimationStorage.cpp:529:3
    #10 0x7f33b9a4c3aa in SampleAnimations /builds/worker/checkouts/gecko/gfx/layers/composite/AsyncCompositionManager.cpp:573:19
    #11 0x7f33b9a4c3aa in mozilla::layers::AsyncCompositionManager::TransformShadowTree(mozilla::layers::SampleTime const&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator>, mozilla::layers::CompositorBridgeParentBase::TransformsToSkip) /builds/worker/checkouts/gecko/gfx/layers/composite/AsyncCompositionManager.cpp:1249:24
    #12 0x7f33b9ac09fd in mozilla::layers::CompositorBridgeParent::CompositeToTarget(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const*) /builds/worker/checkouts/gecko/gfx/layers/ipc/CompositorBridgeParent.cpp:1021:28
    #13 0x7f33b9ae89f0 in mozilla::layers::CompositorVsyncScheduler::Composite(mozilla::VsyncEvent const&) /builds/worker/checkouts/gecko/gfx/layers/ipc/CompositorVsyncScheduler.cpp:256:27
    #14 0x7f33b9b1ac18 in applyImpl<mozilla::layers::CompositorVsyncScheduler, void (mozilla::layers::CompositorVsyncScheduler::*)(const mozilla::VsyncEvent &), StoreCopyPassByConstLRef<mozilla::VsyncEvent> , 0> /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:1188:12
    #15 0x7f33b9b1ac18 in apply<mozilla::layers::CompositorVsyncScheduler, void (mozilla::layers::CompositorVsyncScheduler::*)(const mozilla::VsyncEvent &)> /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:1194:12
    #16 0x7f33b9b1ac18 in mozilla::detail::RunnableMethodImpl<mozilla::layers::CompositorVsyncScheduler*, void (mozilla::layers::CompositorVsyncScheduler::*)(mozilla::VsyncEvent const&), true, (mozilla::RunnableKind)1, mozilla::VsyncEvent>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:1240:13
    #17 0x7f33b8372101 in nsThread::ProcessNextEvent(bool, bool*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:1197:14
    #18 0x7f33b8377c0a in NS_ProcessNextEvent(nsIThread*, bool) /builds/worker/checkouts/gecko/xpcom/threads/nsThreadUtils.cpp:513:10
    #19 0x7f33b8c68cf6 in mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) /builds/worker/checkouts/gecko/ipc/glue/MessagePump.cpp:332:5
    #20 0x7f33b8bda333 in MessageLoop::RunInternal() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:334:10
    #21 0x7f33b8bda24d in RunHandler /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:327:3
    #22 0x7f33b8bda24d in MessageLoop::Run() /builds/worker/checkouts/gecko/ipc/chromium/src/base/message_loop.cc:309:3
    #23 0x7f33b836e80e in nsThread::ThreadFunc(void*) /builds/worker/checkouts/gecko/xpcom/threads/nsThread.cpp:442:10
    #24 0x7f33ccaebabb in _pt_root /builds/worker/checkouts/gecko/nsprpub/pr/src/pthreads/ptthread.c:201:5
    #25 0x7f33cd19d608 in start_thread /build/glibc-ZN95T4/glibc-2.31/nptl/pthread_create.c:477:8
    #26 0x7f33ccd66292 in clone /build/glibc-ZN95T4/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Flags: in-testsuite?

Bugmon Analysis:
Unable to reproduce bug using the following builds:

mozilla-central 20201027095021-3d6ed9f4cf34
mozilla-central 20201027044126-46a0e993f8bb
Removing bugmon keyword as no further action possible.
Please review the bug and re-add the keyword for further analysis.

Keywords: bugmon
Whiteboard: [bugmon:confirm] → [bugmon:confirmed]
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: