New issue
Advanced search Search tips

Issue 809270 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

"StyleInvalidator.cpp(185)] Check failed: !whole_subtree_invalid_" on window resize for Santa Tracker

Project Member Reported by alancutter@chromium.org, Feb 5 2018

Issue description

What steps will reproduce the problem?
(1) Build Chrome with asserts enabled.
(2) Visit: https://santatracker.google.com/
(3) Resize the window.

An assert is hit:
[1:1:0206/101232.100968:FATAL:StyleInvalidator.cpp(185)] Check failed: !whole_subtree_invalid_.
#0 0x7faf32f4894c base::debug::StackTrace::StackTrace()        
#1 0x7faf32f72d1c logging::LogMessage::~LogMessage()                                                                 
#2 0x7faf2b6b7f7f blink::StyleInvalidator::RecursionData::PushInvalidationSet()
#3 0x7faf2b6b6779 blink::StyleInvalidator::PushInvalidationSetsForContainerNode()
#4 0x7faf2b6b86e6 blink::StyleInvalidator::InvalidateShadowRootChildren()    
#5 0x7faf2b6b88fd blink::StyleInvalidator::InvalidateChildren()
#6 0x7faf2b6b6b4c blink::StyleInvalidator::Invalidate()
#7 0x7faf2b6b87a1 blink::StyleInvalidator::InvalidateShadowRootChildren()
#8 0x7faf2b6b88fd blink::StyleInvalidator::InvalidateChildren()
#9 0x7faf2b6b6b4c blink::StyleInvalidator::Invalidate()
#10 0x7faf2b6b8931 blink::StyleInvalidator::InvalidateChildren()
#11 0x7faf2b6b6b4c blink::StyleInvalidator::Invalidate()
#12 0x7faf2b6b87a1 blink::StyleInvalidator::InvalidateShadowRootChildren()
#13 0x7faf2b6b88fd blink::StyleInvalidator::InvalidateChildren()
#14 0x7faf2b6b6b4c blink::StyleInvalidator::Invalidate()
#15 0x7faf2b6b8931 blink::StyleInvalidator::InvalidateChildren()
#16 0x7faf2b6b6b4c blink::StyleInvalidator::Invalidate()
#17 0x7faf2b6b87a1 blink::StyleInvalidator::InvalidateShadowRootChildren()
#18 0x7faf2b6b88fd blink::StyleInvalidator::InvalidateChildren()
#19 0x7faf2b6b6b4c blink::StyleInvalidator::Invalidate()
#20 0x7faf2b6b8931 blink::StyleInvalidator::InvalidateChildren()
#21 0x7faf2b6b6b4c blink::StyleInvalidator::Invalidate()
#22 0x7faf2b6b8931 blink::StyleInvalidator::InvalidateChildren()
#23 0x7faf2b6b6b4c blink::StyleInvalidator::Invalidate()
#24 0x7faf2b6b62d1 blink::StyleInvalidator::Invalidate()
#25 0x7faf2b7bf4e0 blink::Document::UpdateStyleInvalidationIfNeeded()
#26 0x7faf2b7bd002 blink::Document::UpdateStyleAndLayoutTree()
#27 0x7faf2bac9dde blink::LocalFrameView::PerformPreLayoutTasks()
#28 0x7faf2bac70a7 blink::LocalFrameView::UpdateLayout()
#29 0x7faf2bad789c blink::LocalFrameView::UpdateStyleAndLayoutIfNeededRecursiveInternal()
#30 0x7faf2bad57f8 blink::LocalFrameView::UpdateStyleAndLayoutIfNeededRecursive()
#31 0x7faf2bad3fbd blink::LocalFrameView::UpdateLifecyclePhasesInternal()
#32 0x7faf2bad3dd7 blink::LocalFrameView::UpdateAllLifecyclePhases()
#33 0x7faf2c0bb3be blink::PageAnimator::UpdateAllLifecyclePhases()
#34 0x7faf2ba42522 blink::WebViewImpl::UpdateAllLifecyclePhases()
#35 0x7faf2ba448f4 blink::WebViewImpl::ResizeViewWhileAnchored()
#36 0x7faf2ba44be5 blink::WebViewImpl::ResizeWithBrowserControls()
#37 0x7faf30d5bb8e content::RenderViewImpl::ResizeWebWidget()
#38 0x7faf30d6972b content::RenderWidget::Resize()
#39 0x7faf30d66800 content::RenderWidget::OnResize()
#40 0x7faf30d5bcb5 content::RenderViewImpl::OnResize()



 
Tested with a build from today and a build from January 9th, both crash in the same way.
Status: Available (was: Untriaged)
Labels: Stability-Crash
Owner: futhark@chromium.org
Status: Assigned (was: Available)
Status: Started (was: Assigned)
https://chromium-review.googlesource.com/c/chromium/src/+/908751
Project Member

Comment 6 by bugdroid1@chromium.org, Feb 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d95b0a5c782b9f4ef93b3b062beb1a888960819e

commit d95b0a5c782b9f4ef93b3b062beb1a888960819e
Author: Rune Lillesveen <futhark@chromium.org>
Date: Fri Feb 09 01:36:57 2018

Skip pushing invalidation sets inside subtree changes.

We already skipped pushing invalidation sets for InvalidateChildren, but
InvalidateShadowRootChildren() didn't have this check causing a DCHECK
failure in StyleInvalidator::Invalidate().

Bug:  809270 
Change-Id: Id4634be04a036b5056567d581f8a1c5cc630d88c
Reviewed-on: https://chromium-review.googlesource.com/908751
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535610}
[add] https://crrev.com/d95b0a5c782b9f4ef93b3b062beb1a888960819e/third_party/WebKit/LayoutTests/external/wpt/css/cssom/selectorText-modification-restyle-002.html
[modify] https://crrev.com/d95b0a5c782b9f4ef93b3b062beb1a888960819e/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp

Thanks for the quick turn around Rune!
Status: Fixed (was: Started)

Sign in to add a comment