New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 711973 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug



Sign in to add a comment

CHECK failure: Lifecycle().StateAllowsTreeMutations() in Document.cpp

Project Member Reported by ClusterFuzz, Apr 16 2017

Issue description

Detailed report: https://clusterfuzz.com/testcase?key=5569218759360512

Fuzzer: inferno_twister_c
Job Type: linux_asan_content_shell_drt
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  Lifecycle().StateAllowsTreeMutations() in Document.cpp
  blink::Document::UpdateStyleAndLayoutTree
  blink::Document::scrollingElement
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=linux_asan_content_shell_drt&range=454203:454233

Reproducer Testcase: https://clusterfuzz.com/download/AMIfv94bmKI4krqXFX7nD6CN-Dd7UnrxH2pOK0tz5_7XCfwh5RpoubYbpie2AZh8HDx2A_-zKkHgMRxBBtpy03CTs1oHnCeF1GdOyHpOleQiy0gPl9XIxadHecfWZlpSEfOHIwA5vkR0sMtVz6n24hgUPtRHn0wHsvsgu4bjcDOuBBs-ps14UFrTgppx27t08Fb5vDYZgWE_bhKthTEFIPkhKoN8arSzKio7vFpizaTKxtWWe6zxPDpo3e7hbIT-HgIGztGzQVU17dkXA-hjy6rJveJOHZb7N6Js3Xc-ZStwvvTY-n-2hLVZ8pJW0-sxLhjRYzwSxxYE99H_YO8HC1cU1b0mPbRKHkaoOHZnRmXZYQXpknnJjRM?testcase_id=5569218759360512


Additional requirements: Requires HTTP

Issue filed automatically.

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Project Member

Comment 1 by ClusterFuzz, Apr 16 2017

Labels: OS-Mac
Cc: msrchandra@chromium.org
Labels: Test-Predator-Wrong M-58
Owner: dcheng@chromium.org
Status: Assigned (was: Untriaged)
Predator and CL did not provide any possible suspects.
Using Code Search for the file, "Document.cpp" assigning to concern owner.
Suspecting Commit#
https://chromium.googlesource.com/chromium/src/+/ed375c02e956ef832e8ed6223435f0d78d6bdf77

@dcheng -- Could you please look into the issue, kindly re-assign if this is not related to your changes.
Thank You.

Comment 3 by dcheng@chromium.org, Apr 17 2017

Cc: dcheng@chromium.org
Components: Blink>Layout
Owner: tkent@chromium.org
My CL only renames some things. +tkent@ for triage

Comment 4 by tkent@chromium.org, Apr 18 2017

Components: -Blink>Layout Blink>Scroll Blink>Animation Blink>Paint
Owner: ----
Status: Untriaged (was: Assigned)
Looks like an issue related to animation/paint.

Components: -Blink>Animation
I don't think this is animation related. The minimised repro case doesn't use any animations as far as I can tell.

Note that this does repro in a normal debug build of Chromium (ASAN is not needed).
Owner: schenney@chromium.org
Status: Assigned (was: Untriaged)
I'll dig a little to see whom to blame.
Labels: BugSource-Chromium PaintTeamTriaged-20170419

Comment 8 by f...@opera.com, Apr 20 2017

Cc: schenney@chromium.org
Owner: f...@opera.com

Comment 9 by f...@opera.com, Apr 20 2017

Cc: -schenney@chromium.org
Components: Blink>HTML>Meter
Owner: schenney@chromium.org
A <meter> element seems to be playing a central role here (the nested document can be minimized to a <meter> and a child) - one having a descendant removed. The crash itself requires experimental features enabled (the trigger is within compositor-worker RUF.)

Comment 10 by f...@opera.com, Apr 24 2017

Cc: schenney@chromium.org
Components: -Blink>Paint -Blink>Scroll Blink>DOM>ShadowDOM
Owner: ----
Status: Untriaged (was: Assigned)
Some additional digging seems to indicate that this is a Shadow DOM (re)distribution issue:

Relevant stack:

#0  blink::FrameView::ScheduleRelayout (this=0xdd605be2478) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:2286
#1  0x00007fffea6f8aef in blink::LayoutObject::ScheduleRelayout (this=0x21ad4ce04010) at ../../third_party/WebKit/Source/core/layout/LayoutObject.cpp:3020
#2  0x00007fffea6f870a in blink::LayoutObject::MarkContainerChainForLayout (this=0x21ad4ce10950, schedule_relayout=true, layouter=0x0) at ../../third_party/WebKit/Source/core/layout/LayoutObject.cpp:834
#3  0x00007fffe9d5a427 in blink::LayoutObject::SetNeedsLayout (this=0x21ad4ce10950, reason=0x7fffeb7e1d10 <blink::LayoutInvalidationReason::kRemovedFromLayout> "Removed from layout", mark_parents=blink::kMarkContainerChain, layouter=0x0) at ../../third_party/WebKit/Source/core/layout/LayoutObject.h:2672
#4  0x00007fffe9d5a168 in blink::LayoutObject::SetNeedsLayoutAndPrefWidthsRecalc (this=0x21ad4ce10950, reason=0x7fffeb7e1d10 <blink::LayoutInvalidationReason::kRemovedFromLayout> "Removed from layout") at ../../third_party/WebKit/Source/core/layout/LayoutObject.h:1026
#5  0x00007fffea70a5ab in blink::LayoutObjectChildList::RemoveChildNode (this=0x21ad4ce10208, owner=0x21ad4ce10138, old_child=0x21ad4ce10950, notify_layout_object=true) at ../../third_party/WebKit/Source/core/layout/LayoutObjectChildList.cpp:71
#6  0x00007fffea6f6963 in blink::LayoutObject::RemoveChild (this=0x21ad4ce10138, old_child=0x21ad4ce10950) at ../../third_party/WebKit/Source/core/layout/LayoutObject.cpp:359
#7  0x00007fffea630409 in blink::LayoutBlockFlow::RemoveChild (this=0x21ad4ce10138, old_child=0x21ad4ce10950) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:3071
#8  0x00007fffea6b85c4 in blink::LayoutObject::Remove (this=0x21ad4ce10950) at ../../third_party/WebKit/Source/core/layout/LayoutObject.h:1551
#9  0x00007fffea701790 in blink::LayoutObject::WillBeDestroyed (this=0x21ad4ce10950) at ../../third_party/WebKit/Source/core/layout/LayoutObject.cpp:2644
#10 0x00007fffea67c748 in blink::LayoutBoxModelObject::WillBeDestroyed (this=0x21ad4ce10950) at ../../third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp:258
#11 0x00007fffea656f68 in blink::LayoutBox::WillBeDestroyed (this=0x21ad4ce10950) at ../../third_party/WebKit/Source/core/layout/LayoutBox.cpp:137
#12 0x00007fffea60b4a8 in blink::LayoutBlock::WillBeDestroyed (this=0x21ad4ce10950) at ../../third_party/WebKit/Source/core/layout/LayoutBlock.cpp:145
#13 0x00007fffea62ea34 in blink::LayoutBlockFlow::WillBeDestroyed (this=0x21ad4ce10950) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:2845
#14 0x00007fffea70291d in blink::LayoutObject::Destroy (this=0x21ad4ce10950) at ../../third_party/WebKit/Source/core/layout/LayoutObject.cpp:2925
#15 0x00007fffea7028fa in blink::LayoutObject::DestroyAndCleanupAnonymousWrappers (this=0x21ad4ce10950) at ../../third_party/WebKit/Source/core/layout/LayoutObject.cpp:2919
#16 0x00007fffe9db62ca in blink::Node::DetachLayoutTree (this=0xddee3f87350, context=...) at ../../third_party/WebKit/Source/core/dom/Node.cpp:958
#17 0x00007fffe9c6c067 in blink::ContainerNode::DetachLayoutTree (this=0xddee3f87350, context=...) at ../../third_party/WebKit/Source/core/dom/ContainerNode.cpp:803
#18 0x00007fffe9d246b3 in blink::Element::DetachLayoutTree (this=0xddee3f87350, context=...) at ../../third_party/WebKit/Source/core/dom/Element.cpp:1821
#19 0x00007fffe9cc4b9f in blink::Node::LazyReattachIfAttached (this=0xddee3f87350) at ../../third_party/WebKit/Source/core/dom/Node.h:987
#20 0x00007fffe9eb90ef in blink::InsertionPoint::SetDistributedNodes (this=0xddee3f87260, distributed_nodes=...) at ../../third_party/WebKit/Source/core/dom/shadow/InsertionPoint.cpp:92
#21 0x00007fffe9ead4c8 in blink::DistributionPool::DistributeTo (this=0x7fffbe262b58, insertion_point=0xddee3f87260, element_shadow=0x339e20c42538) at ../../third_party/WebKit/Source/core/dom/shadow/ElementShadowV0.cpp:110
#22 0x00007fffe9eadd8b in blink::ElementShadowV0::Distribute (this=0x339e20c42538) at ../../third_party/WebKit/Source/core/dom/shadow/ElementShadowV0.cpp:176
#23 0x00007fffe9eabc4d in blink::ElementShadow::Distribute (this=0x2cd15a5289b0) at ../../third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp:166
#24 0x00007fffe9dc0217 in blink::ElementShadow::DistributeIfNeeded (this=0x2cd15a5289b0) at ../../third_party/WebKit/Source/core/dom/shadow/ElementShadow.h:117
#25 0x00007fffe9db4604 in blink::Node::RecalcDistribution (this=0xddee3f86dc0) at ../../third_party/WebKit/Source/core/dom/Node.cpp:689
#26 0x00007fffe9db46e5 in blink::Node::RecalcDistribution (this=0xddee3f86d20) at ../../third_party/WebKit/Source/core/dom/Node.cpp:695
#27 0x00007fffe9db46e5 in blink::Node::RecalcDistribution (this=0xddee3f86be0) at ../../third_party/WebKit/Source/core/dom/Node.cpp:695
#28 0x00007fffe9db46e5 in blink::Node::RecalcDistribution (this=0xddee3f85d08) at ../../third_party/WebKit/Source/core/dom/Node.cpp:695
#29 0x00007fffe9db4035 in blink::Node::UpdateDistribution (this=0xddee3f85d08) at ../../third_party/WebKit/Source/core/dom/Node.cpp:681
#30 0x00007fffe9ca3808 in blink::Document::UpdateStyleAndLayoutTree (this=0xddee3f85d08) at ../../third_party/WebKit/Source/core/dom/Document.cpp:2024
#31 0x00007fffea0bfe91 in blink::FrameView::UpdateStyleAndLayoutIfNeededRecursiveInternal (this=0xdd605be3f98) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:3357
#32 0x00007fffea0c0286 in blink::FrameView::UpdateStyleAndLayoutIfNeededRecursiveInternal (this=0xdd605be2478) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:3390
#33 0x00007fffea0be026 in blink::FrameView::UpdateStyleAndLayoutIfNeededRecursive (this=0xdd605be2478) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:3337
#34 0x00007fffea0bcafa in blink::FrameView::UpdateLifecyclePhasesInternal (this=0xdd605be2478, target_state=blink::DocumentLifecycle::kPaintClean) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:3071
#35 0x00007fffea0bc7e2 in blink::FrameView::UpdateAllLifecyclePhases (this=0xdd605be2478) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:2923

Attaching my minimized version(s) of the testcase. (If running from file:// remember to pass --allow-file-access-from-files.)
cfdependency-48142.html
55 bytes View Download
fuzz-http-79.html
296 bytes View Download
Owner: hayato@chromium.org
Status: Assigned (was: Untriaged)
FWIW I looked at a CF  Issue 714353  recently and CF's regression range was off; it's worth manually bisecting these to see if recent shadow DOM changes caused this.
Cc: kochi@chromium.org
Labels: -M-58
Owner: yuzus@chromium.org
yuzus@, could you try to fix this?
kochi@, help yuzus@ if necessary.
Project Member

Comment 13 by ClusterFuzz, Jun 21 2017

Labels: OS-Windows
Components: -Blink>DOM>ShadowDOM
Project Member

Comment 15 by ClusterFuzz, Aug 10 2017

Status: WontFix (was: Assigned)
ClusterFuzz testcase 5569218759360512 is flaky and no longer reproduces, so closing issue.

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.

Sign in to add a comment