Bug 219219

Summary: [macOS WK1] ASSERTION FAILED: !needsLayout() in WebCore::FrameView::paintContents
Product: WebKit Reporter: Ryan Haddad <ryanhaddad>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: bfulgham, dino, dpino, jdarpinian, kbr, kkinnunen, simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=217198
https://bugs.webkit.org/show_bug.cgi?id=217761
Bug Depends on: 217198    
Bug Blocks:    
Attachments:
Description Flags
crash log none

Description Ryan Haddad 2020-11-20 13:00:39 PST
Created attachment 414707 [details]
crash log

webgl/conformance/extensions/s3tc-and-rgtc.html is a flaky crash on macOS debug WK1 bots with the assert below:

ASSERTION FAILED: !needsLayout()
./page/FrameView.cpp(4308) : virtual void WebCore::FrameView::paintContents(WebCore::GraphicsContext &, const WebCore::IntRect &, WebCore::Widget::SecurityOriginPaintPolicy, WebCore::EventRegionContext *)
1   0x10dfc85e9 WTFCrash
2   0x12cc7bd5b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x130ab6289 WebCore::FrameView::paintContents(WebCore::GraphicsContext&, WebCore::IntRect const&, WebCore::Widget::SecurityOriginPaintPolicy, WebCore::EventRegionContext*)
4   0x1179b4a39 -[WebFrame(WebInternal) _drawRect:contentsOnly:]
5   0x1179d9646 -[WebHTMLView drawSingleRect:]
6   0x1179d9d61 -[WebHTMLView drawRect:]
7   0x7fff2eadd59f _NSViewDrawRect
8   0x7fff2eadc8ae -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:]
9   0x1179ccf58 -[WebHTMLView(WebPrivate) _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:]
10  0x7fff2eadcc3f -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:]
11  0x7fff2eadcc3f -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:]
12  0x7fff2eadcc3f -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:]
13  0x7fff2ec71c58 -[NSView displayRectIgnoringOpacity:inContext:]
14  0x12ed0bb4f WebCore::Widget::paint(WebCore::GraphicsContext&, WebCore::IntRect const&, WebCore::Widget::SecurityOriginPaintPolicy, WebCore::EventRegionContext*)
15  0x130d1082a WebCore::ScrollView::paint(WebCore::GraphicsContext&, WebCore::IntRect const&, WebCore::Widget::SecurityOriginPaintPolicy, WebCore::EventRegionContext*)
16  0x13163afcb WebCore::RenderWidget::paintContents(WebCore::PaintInfo&, WebCore::LayoutPoint const&)
17  0x13163b8fa WebCore::RenderWidget::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&)
18  0x1314d81ac WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase, WTF::Vector<WebCore::LayerFragment, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::PaintBehavior>, WebCore::RenderObject*)
19  0x1314d5c18 WebCore::RenderLayer::paintForegroundForFragments(WTF::Vector<WebCore::LayerFragment, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, WebCore::GraphicsContext&, WebCore::GraphicsContext&, WebCore::LayoutRect const&, bool, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::PaintBehavior>, WebCore::RenderObject*)
20  0x1314d16cc WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)
21  0x1314f5e7d WebCore::RenderLayerBacking::paintIntoLayer(WebCore::GraphicsLayer const*, WebCore::GraphicsContext&, WebCore::IntRect const&, WTF::OptionSet<WebCore::PaintBehavior>, WebCore::EventRegionContext*)::$_25::operator()(WebCore::RenderLayer&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>) const
22  0x1314f5795 WebCore::RenderLayerBacking::paintIntoLayer(WebCore::GraphicsLayer const*, WebCore::GraphicsContext&, WebCore::IntRect const&, WTF::OptionSet<WebCore::PaintBehavior>, WebCore::EventRegionContext*)
23  0x1314f6bb1 WebCore::RenderLayerBacking::paintContents(WebCore::GraphicsLayer const*, WebCore::GraphicsContext&, WebCore::FloatRect const&, unsigned int)
24  0x130e97360 WebCore::GraphicsLayer::paintGraphicsLayerContents(WebCore::GraphicsContext&, WebCore::FloatRect const&, unsigned int)
25  0x130f22c55 WebCore::GraphicsLayerCA::platformCALayerPaintContents(WebCore::PlatformCALayer*, WebCore::GraphicsContext&, WebCore::FloatRect const&, unsigned int)
26  0x12e8815ec WebCore::PlatformCALayer::drawLayerContents(WebCore::GraphicsContext&, WebCore::PlatformCALayer*, WTF::Vector<WebCore::FloatRect, 5ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>&, unsigned int)
27  0x12ea2a94d -[WebLayer drawInContext:]
28  0x7fff3d1d486d CABackingStoreUpdate_
29  0x7fff3d2344ad invocation function for block in CA::Layer::display_()
30  0x7fff3d1d3d86 -[CALayer _display]
31  0x12ea2b0db -[WebSimpleLayer display]

https://results.webkit.org/?suite=layout-tests&test=webgl/conformance/extensions/s3tc-and-rgtc.html
Comment 1 Ryan Haddad 2020-11-20 14:00:51 PST
It looks like this has been a flaky crash since the test was introduced with https://trac.webkit.org/changeset/268234/webkit
Comment 2 Radar WebKit Bug Importer 2020-11-20 14:01:10 PST
<rdar://problem/71641303>
Comment 3 Kenneth Russell 2020-11-20 17:06:43 PST
It's strange that the crash stack doesn't involve WebGL. Does this test case do anything strange with canvases?
Comment 4 Alexey Proskuryakov 2020-11-22 18:05:10 PST
Similar to bug 217761.
Comment 5 Kenneth Russell 2020-11-30 13:46:23 PST
*** Bug 217813 has been marked as a duplicate of this bug. ***
Comment 6 Kenneth Russell 2020-11-30 13:48:29 PST
In order to keep the bug list workable I'm duplicating this into Issue 217761.

*** This bug has been marked as a duplicate of bug 217761 ***