Closed Bug 1400022 Opened 9 years ago Closed 8 years ago

stylo: Assertion failure: !ServoStyleSet::IsInServoTraversal(), at layout/base/ServoRestyleManager.cpp:298

Categories

(Core :: CSS Parsing and Computation, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox-esr52 --- unaffected
firefox55 --- unaffected
firefox56 --- unaffected
firefox57 --- fixed

People

(Reporter: truber, Assigned: hiro)

References

(Blocks 2 open bugs)

Details

(Keywords: assertion, testcase)

Attachments

(3 files)

Attached file testcase.html
The attached testcase causes an assertion in m-c rev 20170914-593158cd4910 Assertion failure: !ServoStyleSet::IsInServoTraversal(), at /builds/worker/workspace/build/src/layout/base/ServoRestyleManager.cpp:298 #0: mozilla::ServoRestyleManager::PostRestyleEvent, at layout/base/ServoRestyleManager.cpp:298 #1: nsSVGRenderingObserverList::InvalidateAll, at layout/svg/nsSVGEffects.cpp:808 #2: InvalidateRenderingObservers, at layout/generic/nsFrame.cpp:6404 #3: nsIFrame::SchedulePaint, at layout/generic/nsFrame.cpp:6679 #4: mozilla::dom::KeyframeEffectReadOnly::NotifyAnimationTimingUpdated, at dom/animation/KeyframeEffectReadOnly.cpp:115 #5: mozilla::dom::Animation::UpdateTiming, at dom/animation/Animation.cpp:1238 #6: mozilla::dom::Animation::PlayNoUpdate, at dom/animation/Animation.cpp:1126 #7: mozilla::dom::CSSTransition::PlayFromStyle, at layout/style/nsTransitionManager.h:149 #8: nsTransitionManager::ConsiderInitiatingTransition<const mozilla::ServoStyleContext*>, at layout/style/nsTransitionManager.cpp:1042 #9: nsTransitionManager::DoUpdateTransitions<const mozilla::ServoStyleContext*>, at layout/style/nsTransitionManager.cpp:684 #10: nsTransitionManager::UpdateTransitions, at layout/style/nsTransitionManager.cpp:642 #11: Gecko_UpdateAnimations, at layout/style/ServoBindings.cpp:690 #12: style::gecko::wrapper::{{impl}}::update_animations, at servo/components/style/gecko/wrapper.rs:1242 #13: style::context::SequentialTask<style::gecko::wrapper::GeckoElement>::execute<style::gecko::wrapper::GeckoElement>, at servo/components/style/context.rs:484 #14: style::context::{{impl}}::drop<style::gecko::wrapper::GeckoElement>, at servo/components/style/context.rs:604 #15: core::ptr::drop_in_place<style::context::SequentialTaskList<style::gecko::wrapper::GeckoElement>>, at src/libcore/ptr.rs:60 #16: core::ptr::drop_in_place<style::context::ThreadLocalStyleContext<style::gecko::wrapper::GeckoElement>>, at src/libcore/ptr.rs:60 #17: style::driver::traverse_dom<style::gecko::wrapper::GeckoElement,style::gecko::traversal::RecalcStyleOnly>, at servo/components/style/driver.rs:131 #18: geckoservo::glue::traverse_subtree, at servo/ports/geckolib/glue.rs:252 #19: geckoservo::glue::Servo_TraverseSubtree, at servo/ports/geckolib/glue.rs:290 #20: mozilla::ServoStyleSet::StyleDocument, at layout/style/ServoStyleSet.cpp:959 #21: mozilla::ServoRestyleManager::DoProcessPendingRestyles, at layout/base/ServoRestyleManager.cpp:1106 #22: mozilla::PresShell::DoFlushPendingNotifications, at layout/base/PresShell.cpp:4170 #23: mozilla::PresShell::DoFlushPendingNotifications, at layout/base/PresShell.cpp:4043 #24: nsDocument::FlushPendingNotifications, at dom/base/nsDocument.cpp:8366 #25: nsDocLoader::DocLoaderIsEmpty, at uriloader/base/nsDocLoader.cpp:703 #26: nsDocLoader::OnStopRequest, at uriloader/base/nsDocLoader.cpp:632 #27: mozilla::net::nsLoadGroup::RemoveRequest, at netwerk/base/nsLoadGroup.cpp:629 #28: nsDocument::DoUnblockOnload, at dom/base/nsDocument.cpp:9194 #29: nsDocument::UnblockOnload, at dom/base/nsDocument.cpp:9116 #30: nsDocument::DispatchContentLoadedEvents, at dom/base/nsDocument.cpp:5620 #31: mozilla::detail::RunnableMethodImpl<nsDocument*, void (nsDocument::*)(), true, (mozilla::RunnableKind)0u>::Run, at xpcom/threads/nsThreadUtils.h:1142 #32: mozilla::SchedulerGroup::Runnable::Run, at xpcom/threads/SchedulerGroup.cpp:396 #33: nsThread::ProcessNextEvent, at xpcom/threads/nsThread.cpp:1039 #34: NS_ProcessNextEvent, at xpcom/threads/nsThreadUtils.cpp:521 #35: mozilla::ipc::MessagePump::Run, at ipc/glue/MessagePump.cpp:97 #36: MessageLoop::RunInternal, at ipc/chromium/src/base/message_loop.cc:326 #37: MessageLoop::Run, at ipc/chromium/src/base/message_loop.cc:319 #38: nsBaseAppShell::Run, at widget/nsBaseAppShell.cpp:158 #39: XRE_RunAppShell, at toolkit/xre/nsEmbedFunctions.cpp:880 #40: mozilla::ipc::MessagePumpForChildProcess::Run, at ipc/glue/MessagePump.cpp:269 #41: MessageLoop::RunInternal, at ipc/chromium/src/base/message_loop.cc:326 #42: MessageLoop::Run, at ipc/chromium/src/base/message_loop.cc:319 #43: XRE_InitChildProcess, at toolkit/xre/nsEmbedFunctions.cpp:705 #44: content_process_main, at ipc/contentproc/plugin-container.cpp:63 #45: main, at browser/app/nsBrowserApp.cpp:285 #46: libc-2.25.so+0x204ca #47: MOZ_ReportAssertionFailure, at mfbt/Assertions.h:165
Flags: in-testsuite?
I can't reproduce the assertion on linux, but I know this is a problem.
See Also: → 1400035
Blocks: 1397057
This one is pretty much the same issue indeed.
Oops, I can actually reproduce the assertion. I did replace the SchedulePaint in UpdateTargetRegistration() with RequestRestyle(Layer).
Depends on: 1399667
Assignee: nobody → hikezoe
Priority: -- → P2
Attachment #8909577 - Flags: review?(matt.woodrow) → review+
Attachment #8909578 - Flags: review?(hikezoe) → review+
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: