Bug 229505

Summary: ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData) on "youtube-plugin-replacement" & "quicktime-plugin-replacement tests"
Product: WebKit Reporter: ayumi_kojima
Component: CompositingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED CONFIGURATION CHANGED    
Severity: Normal CC: bfulgham, dbates, ehutchison, simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Mac (Apple Silicon)   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=223750
https://bugs.webkit.org/show_bug.cgi?id=229722

Description ayumi_kojima 2021-08-25 11:29:17 PDT
security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement.html

Is a flaky crash on macOS-AppleSilicon-Big-Sur-Debug-WK2-Tests-EWS

According to the history, the crash is not seen on the open source directory: https://results.webkit.org/?suite=layout-tests&test=security%2FcontentSecurityPolicy%2Fplugins-types-blocks-quicktime-plugin-replacement.html

Result page: https://ews-build.s3-us-west-2.amazonaws.com/macOS-AppleSilicon-Big-Sur-Debug-WK2-Tests-EWS/r435759-10009/results.html

I am not sure when exactly the flakiness started, but started being notified from this build https://ews-build.webkit.org/#/builders/60/builds/10009.

Crash log: 

No crash log found for com.apple.WebKit.WebContent.Development:66567.

stdout:

stderr:
ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData)
./rendering/RenderLayerCompositor.cpp(1166) : void WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer *, WebCore::RenderLayer &, WebCore::LayerOverlapMap &, WebCore::RenderLayerCompositor::CompositingState &, WebCore::RenderLayerCompositor::BackingSharingState &, bool &)
1   0x138ff1e9c WTFCrash
2   0x119216740 WTFCrashWithInfo(int, char const*, char const*, int)
3   0x11c5fedd4 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::LayerOverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, WebCore::RenderLayerCompositor::BackingSharingState&, bool&)
4   0x11c5fead0 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::LayerOverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, WebCore::RenderLayerCompositor::BackingSharingState&, bool&)
5   0x11c5feb48 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::LayerOverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, WebCore::RenderLayerCompositor::BackingSharingState&, bool&)
6   0x11c5fcc90 WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*)
7   0x11c5fc2c4 WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout()
8   0x11ba194ec WebCore::FrameView::updateCompositingLayersAfterStyleChange()
9   0x11aa18b1c WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
10  0x11aa197d4 WebCore::Document::updateStyleIfNeeded()
11  0x11aa1484c WebCore::Document::updateLayout()
12  0x11aa15e08 WebCore::Document::updateLayoutIgnorePendingStylesheets(WebCore::Document::RunPostLayoutTasks)
13  0x11a606a74 WebCore::ComputedStyleExtractor::propertyValue(WebCore::CSSPropertyID, WebCore::EUpdateLayout)
14  0x11a606894 WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue(WebCore::CSSPropertyID, WebCore::EUpdateLayout) const
15  0x11a605a98 WebCore::CSSComputedStyleDeclaration::getPropertyValue(WebCore::CSSPropertyID) const
16  0x11a622820 WebCore::CSSComputedStyleDeclaration::getPropertyValueInternal(WebCore::CSSPropertyID)
17  0x11a7220a0 WebCore::CSSStyleDeclaration::propertyValueForCamelCasedIDLAttribute(WTF::AtomString const&)
18  0x11822cb5c WebCore::jsCSSStyleDeclaration_propertyValueForCamelCasedIDLAttributeGetter(JSC::JSGlobalObject&, WebCore::JSCSSStyleDeclaration&, JSC::PropertyName)
19  0x11819d6bc long long WebCore::IDLAttribute<WebCore::JSCSSStyleDeclaration>::getPassingPropertyName<&(WebCore::jsCSSStyleDeclaration_propertyValueForCamelCasedIDLAttributeGetter(JSC::JSGlobalObject&, WebCore::JSCSSStyleDeclaration&, JSC::PropertyName)), (WebCore::CastedThisErrorBehavior)3>(JSC::JSGlobalObject&, long long, JSC::PropertyName)
20  0x11819d594 WebCore::jsCSSStyleDeclaration_propertyValueForCamelCasedIDLAttribute(JSC::JSGlobalObject*, long long, JSC::PropertyName)
21  0x13af3277c JSC::PropertySlot::customGetter(JSC::VM&, JSC::PropertyName) const
22  0x13a777fac JSC::PropertySlot::getValue(JSC::JSGlobalObject*, JSC::PropertyName) const
23  0x13a7798b8 JSC::JSValue::get(JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&) const
24  0x13a92a164 JSC::LLInt::performLLIntGetByID(JSC::Instruction const*, JSC::CodeBlock*, JSC::JSGlobalObject*, JSC::JSValue, JSC::Identifier const&, JSC::GetByIdModeMetadata&)
25  0x13a929ec4 llint_slow_path_get_by_id
26  0x13981608c llint_entry
27  0x13982f2cc llint_entry
28  0x13982f374 llint_entry
29  0x13980ad18 vmEntryToJavaScript
30  0x13a76dd04 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
31  0x13a76e360 JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
com.apple.WebKit.WebContent.Development terminated (pid 66567) because the process crashed
LEAK: 3 WebPageProxy
Comment 1 Radar WebKit Bug Importer 2021-08-25 11:29:48 PDT
<rdar://problem/82349517>
Comment 2 ayumi_kojima 2021-08-25 11:35:34 PDT
Marked expectations https://trac.webkit.org/changeset/281567/webkit
Comment 3 Simon Fraser (smfr) 2021-08-25 14:00:42 PDT
Can't reproduce with `run-webkit-tests security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement.html --force --iterations=500 --exit-after-n-failures=1`
Comment 4 Ryan Haddad 2021-08-25 15:44:58 PDT
Adapting Eric's repro steps in the related bug, I can reproduce with the following:
`run-webkit-tests --debug security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html --exit-after-n-crashes 1  --iterations 10 --force`
Comment 5 Simon Fraser (smfr) 2021-08-25 15:59:15 PDT
Since we're going to remove this code at some point I don't have much interest in fixing this. We could just disable the test.
Comment 6 ayumi_kojima 2021-08-26 11:54:41 PDT
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html also started showing up on macOS-AppleSilicon-Big-Sur-Debug-WK2-Tests-EWS as a flaky test. https://ews-build.webkit.org/#/builders/60/builds/10569

Marked expectations: https://trac.webkit.org/changeset/281639/webkit
Comment 7 ayumi_kojima 2021-08-31 11:36:23 PDT
*** Bug 229722 has been marked as a duplicate of this bug. ***
Comment 8 ayumi_kojima 2021-08-31 11:40:52 PDT
Per Simon's comment, updated test expectations for those tests:

security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html  security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement-without-mime-type.html 
security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement.html

so that the tests will skip on all platforms

https://trac.webkit.org/changeset/281811/webkit
Comment 9 Eric Hutchison 2021-09-15 16:12:55 PDT
Updated test expectations for security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html included in this issue.
Comment 10 Eric Hutchison 2021-09-15 16:14:00 PDT
(In reply to Eric Hutchison from comment #9)
> Updated test expectations for
> security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-
> replacement.html included in this issue.

https://trac.webkit.org/changeset/282479/webkit