Bug 218723 - REGRESSION (r269407): ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData) in WebCore::RenderLayerCompositor::computeCompositingRequirements
Summary: REGRESSION (r269407): ASSERTION FAILED: willBeComposited == needsToBeComposit...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Eric Carlson
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-11-09 13:44 PST by Ryan Haddad
Modified: 2020-11-10 11:34 PST (History)
3 users (show)

See Also:


Attachments
crash log (106.31 KB, text/plain)
2020-11-09 13:46 PST, Ryan Haddad
no flags Details
Patch (1.75 KB, patch)
2020-11-10 11:04 PST, Eric Carlson
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Haddad 2020-11-09 13:44:35 PST
macOS debug bots are frequently seeing the assertion below with plugins/quicktime-plugin-replacement.html:

ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData)
./rendering/RenderLayerCompositor.cpp(1125) : void WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer *, WebCore::RenderLayer &, WebCore::LayerOverlapMap &, WebCore::RenderLayerCompositor::CompositingState &, WebCore::RenderLayerCompositor::BackingSharingState &, bool &)
1   0x2387b5f29 WTFCrash
2   0x2180032eb WTFCrashWithInfo(int, char const*, char const*, int)
3   0x21c8627dc WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::LayerOverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, WebCore::RenderLayerCompositor::BackingSharingState&, bool&)
4   0x21c8623e7 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::LayerOverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, WebCore::RenderLayerCompositor::BackingSharingState&, bool&)
5   0x21c86249a WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::LayerOverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, WebCore::RenderLayerCompositor::BackingSharingState&, bool&)
6   0x21c82cb8e WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*)
7   0x21c85ef9e WebCore::RenderLayerCompositor::updateCompositingLayersTimerFired()
8   0x21c89bb57 decltype(*(std::__1::forward<WebCore::RenderLayerCompositor*&>(fp0)).*fp()) std::__1::__invoke<void (WebCore::RenderLayerCompositor::*&)(), WebCore::RenderLayerCompositor*&, void>(void (WebCore::RenderLayerCompositor::*&)(), WebCore::RenderLayerCompositor*&)
9   0x21c89bad0 std::__1::__bind_return<void (WebCore::RenderLayerCompositor::*)(), std::__1::tuple<WebCore::RenderLayerCompositor*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::RenderLayerCompositor::*)(), std::__1::tuple<WebCore::RenderLayerCompositor*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (WebCore::RenderLayerCompositor::*)(), std::__1::tuple<WebCore::RenderLayerCompositor*>, 0ul, std::__1::tuple<> >(void (WebCore::RenderLayerCompositor::*&)(), std::__1::tuple<WebCore::RenderLayerCompositor*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&)
10  0x21c89ba89 std::__1::__bind_return<void (WebCore::RenderLayerCompositor::*)(), std::__1::tuple<WebCore::RenderLayerCompositor*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::RenderLayerCompositor::*)(), std::__1::tuple<WebCore::RenderLayerCompositor*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (WebCore::RenderLayerCompositor::*&)(), WebCore::RenderLayerCompositor*>::operator()<>()
11  0x21c89ba2e WTF::Detail::CallableWrapper<std::__1::__bind<void (WebCore::RenderLayerCompositor::*&)(), WebCore::RenderLayerCompositor*>, void>::call()
12  0x218017642 WTF::Function<void ()>::operator()() const
13  0x21804eb1e WebCore::Timer::fired()
14  0x21c089dd4 WebCore::ThreadTimers::sharedTimerFiredInternal()
15  0x21c0930b1 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const
16  0x21c09305e WTF::Detail::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void>::call()
17  0x218017642 WTF::Function<void ()>::operator()() const
18  0x21c0463db WebCore::MainThreadSharedTimer::fired()
19  0x21c101ee6 WebCore::timerFired(__CFRunLoopTimer*, void*)
20  0x7fff350507f9 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
21  0x7fff3505035f __CFRunLoopDoTimer
22  0x7fff3504fe47 __CFRunLoopDoTimers
23  0x7fff35034bea __CFRunLoopRun
24  0x7fff35033e3e CFRunLoopRunSpecific
25  0x7fff376cf1c8 -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
26  0x7fff37781c6f -[NSRunLoop(NSRunLoop) run]
27  0x7fff6f2ee4ea _xpc_objc_main.cold.4
28  0x7fff6f2ee430 _xpc_objc_main
29  0x7fff6f2edf63 _xpc_copy_xpcservice_dictionary
30  0x1032fcafc WebKit::XPCServiceMain(int, char const**)
31  0x1046c2b8b WKXPCServiceMain
LEAK: 2 WebPageProxy

https://results.webkit.org/?suite=layout-tests&test=plugins%2Fquicktime-plugin-replacement.html
Comment 1 Radar WebKit Bug Importer 2020-11-09 13:44:53 PST
<rdar://problem/71208603>
Comment 2 Ryan Haddad 2020-11-09 13:46:13 PST
Created attachment 413628 [details]
crash log
Comment 3 Ryan Haddad 2020-11-09 13:55:41 PST
This appears to have started with https://trac.webkit.org/changeset/269407/webkit

I can reproduce the crash with a local debug build by simply running plugins/quicktime-plugin-replacement.html. It does not reproduce with r269405.
Comment 4 Eric Carlson 2020-11-10 11:04:54 PST
Created attachment 413716 [details]
Patch
Comment 5 EWS 2020-11-10 11:34:23 PST
Committed r269637: <https://trac.webkit.org/changeset/269637>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413716 [details].