Bug 184306 - REGRESSION (r230223): LayoutTest http/tests/contentextensions/css-display-none-overflows-rule-data-1.html is crashing
Summary: REGRESSION (r230223): LayoutTest http/tests/contentextensions/css-display-non...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: youenn fablet
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2018-04-04 09:14 PDT by Ryan Haddad
Modified: 2018-04-10 17:06 PDT (History)
7 users (show)

See Also:


Attachments
Patch (2.47 KB, patch)
2018-04-04 10:39 PDT, youenn fablet
no flags Details | Formatted Diff | Diff
Patch (2.05 KB, patch)
2018-04-04 10:49 PDT, youenn fablet
no flags Details | Formatted Diff | Diff
Patch (8.00 KB, patch)
2018-04-05 11:17 PDT, youenn fablet
no flags Details | Formatted Diff | Diff
Patch for landing (8.10 KB, patch)
2018-04-05 21:18 PDT, youenn fablet
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 2018-04-04 09:14:35 PDT
LayoutTest http/tests/contentextensions/css-display-none-overflows-rule-data-1.html is failing an assertion on macOS Debug WK2 bots:

ASSERTION FAILED: m_isConstructed
/Volumes/Data/slave/sierra-debug/build/WebKitBuild/Debug/usr/local/include/wtf/NeverDestroyed.h(123) : PointerType WTF::LazyNeverDestroyed<const WebCore::QualifiedName>::storagePointer() const [T = const WebCore::QualifiedName]
1   0x121ceec9d WTFCrash
2   0x113cb68b6 WTF::LazyNeverDestroyed<WebCore::QualifiedName const>::storagePointer() const
3   0x113ca7405 WTF::LazyNeverDestroyed<WebCore::QualifiedName const>::operator WebCore::QualifiedName const&()
4   0x115753f20 WebCore::anyQName()
5   0x115753db4 WebCore::CSSSelector::RareData::RareData(WTF::AtomicString&&)
6   0x115753f4d WebCore::CSSSelector::RareData::RareData(WTF::AtomicString&&)
7   0x1157507af WebCore::CSSSelector::RareData::create(WTF::AtomicString&&)
8   0x1157506c8 WebCore::CSSSelector::createRareData()
9   0x1157532cc WebCore::CSSSelector::setSelectorList(std::__1::unique_ptr<WebCore::CSSSelectorList, std::__1::default_delete<WebCore::CSSSelectorList> >)
10  0x115856196 WebCore::CSSParserSelector::setSelectorList(std::__1::unique_ptr<WebCore::CSSSelectorList, std::__1::default_delete<WebCore::CSSSelectorList> >)
11  0x11588b461 WebCore::CSSSelectorParser::consumePseudo(WebCore::CSSParserTokenRange&)
12  0x115886b25 WebCore::CSSSelectorParser::consumeSimpleSelector(WebCore::CSSParserTokenRange&)
13  0x11588459b WebCore::CSSSelectorParser::consumeCompoundSelector(WebCore::CSSParserTokenRange&)
14  0x115882bc2 WebCore::CSSSelectorParser::consumeComplexSelector(WebCore::CSSParserTokenRange&)
15  0x115882571 WebCore::CSSSelectorParser::consumeComplexSelectorList(WebCore::CSSParserTokenRange&)
16  0x115882481 WebCore::CSSSelectorParser::parseSelector(WebCore::CSSParserTokenRange, WebCore::CSSParserContext const&, WebCore::StyleSheetContents*)
17  0x115851746 WebCore::CSSParserImpl::consumeStyleRule(WebCore::CSSParserTokenRange, WebCore::CSSParserTokenRange)
18  0x11584c301 WebCore::CSSParserImpl::consumeQualifiedRule(WebCore::CSSParserTokenRange&, WebCore::CSSParserImpl::AllowedRulesType)
19  0x11584c5b9 bool WebCore::CSSParserImpl::consumeRuleList<WebCore::CSSParserImpl::parseStyleSheet(WTF::String const&, WebCore::CSSParserContext const&, WebCore::StyleSheetContents*, WebCore::CSSParser::RuleParsing)::$_2>(WebCore::CSSParserTokenRange, WebCore::CSSParserImpl::RuleListType, WebCore::CSSParserImpl::parseStyleSheet(WTF::String const&, WebCore::CSSParserContext const&, WebCore::StyleSheetContents*, WebCore::CSSParser::RuleParsing)::$_2)
20  0x11584454c WebCore::CSSParserImpl::parseStyleSheet(WTF::String const&, WebCore::CSSParserContext const&, WebCore::StyleSheetContents*, WebCore::CSSParser::RuleParsing)
21  0x1158444ab WebCore::CSSParser::parseSheet(WebCore::StyleSheetContents*, WTF::String const&, WebCore::CSSParser::RuleParsing)
22  0x115815fae WebCore::StyleSheetContents::parseString(WTF::String const&)
23  0x1155a49fb WebCore::ContentExtensions::ContentExtension::compileGlobalDisplayNoneStyleSheet()
24  0x1155a4426 WebCore::ContentExtensions::ContentExtension::ContentExtension(WTF::String const&, WTF::Ref<WebCore::ContentExtensions::CompiledContentExtension, WTF::DumbPtrTraits<WebCore::ContentExtensions::CompiledContentExtension> >&&)
25  0x1155a4025 WebCore::ContentExtensions::ContentExtension::ContentExtension(WTF::String const&, WTF::Ref<WebCore::ContentExtensions::CompiledContentExtension, WTF::DumbPtrTraits<WebCore::ContentExtensions::CompiledContentExtension> >&&)
26  0x1155a3f60 WebCore::ContentExtensions::ContentExtension::create(WTF::String const&, WTF::Ref<WebCore::ContentExtensions::CompiledContentExtension, WTF::DumbPtrTraits<WebCore::ContentExtensions::CompiledContentExtension> >&&)
27  0x1155d9747 WebCore::ContentExtensions::ContentExtensionsBackend::addContentExtension(WTF::String const&, WTF::Ref<WebCore::ContentExtensions::CompiledContentExtension, WTF::DumbPtrTraits<WebCore::ContentExtensions::CompiledContentExtension> >)
28  0x10f7e3886 WebKit::NetworkContentRuleListManager::addContentRuleLists(WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)
29  0x10f7ef8bd void IPC::callMemberFunctionImpl<WebKit::NetworkContentRuleListManager, void (WebKit::NetworkContentRuleListManager::*)(WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&), std::__1::tuple<WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >, 0ul, 1ul>(WebKit::NetworkContentRuleListManager*, void (WebKit::NetworkContentRuleListManager::*)(WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&), std::__1::tuple<WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>)
30  0x10f7eceb8 void IPC::callMemberFunction<WebKit::NetworkContentRuleListManager, void (WebKit::NetworkContentRuleListManager::*)(WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&), std::__1::tuple<WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(std::__1::tuple<WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >&&, WebKit::NetworkContentRuleListManager*, void (WebKit::NetworkContentRuleListManager::*)(WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&))
31  0x10f7ec2f1 void IPC::handleMessage<Messages::NetworkContentRuleListManager::AddContentRuleLists, WebKit::NetworkContentRuleListManager, void (WebKit::NetworkContentRuleListManager::*)(WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)>(IPC::Decoder&, WebKit::NetworkContentRuleListManager*, void (WebKit::NetworkContentRuleListManager::*)(WTF::ObjectIdentifier<WebKit::UserContentControllerIdentifierType>, WTF::Vector<std::__1::pair<WTF::String, WebKit::WebCompiledContentRuleListData>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&))
LEAK: 2 WebPageProxy

https://build.webkit.org/builders/Apple%20Sierra%20Debug%20WK2%20(Tests)/builds/5898
Comment 1 Ryan Haddad 2018-04-04 09:15:17 PDT
Flakiness dashboard blames https://trac.webkit.org/changeset/230223/webkit
Comment 2 youenn fablet 2018-04-04 10:24:12 PDT
Thanks Ryan, I am investigating this crash
Comment 3 youenn fablet 2018-04-04 10:39:22 PDT
Created attachment 337187 [details]
Patch
Comment 4 youenn fablet 2018-04-04 10:49:40 PDT
Created attachment 337190 [details]
Patch
Comment 5 Ryosuke Niwa 2018-04-04 21:16:07 PDT
Comment on attachment 337190 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=337190&action=review

> Source/WebKit/NetworkProcess/NetworkContentRuleListManager.cpp:71
> +        AtomicString::init();

NetworkProcess::initializeNetworkProcess already calls this. It makes no sense that we have to initialize it again here.

> Source/WebKit/NetworkProcess/NetworkContentRuleListManager.cpp:72
> +        WebCore::QualifiedName::init();

Qualified names!? Who is creating a qualified name in the network process?
Comment 6 youenn fablet 2018-04-05 11:17:33 PDT
Created attachment 337279 [details]
Patch
Comment 7 Chris Dumez 2018-04-05 14:46:42 PDT
Comment on attachment 337279 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=337279&action=review

I'll let someone familiar with content extensions do a proper review but I have a comment.

> Source/WebCore/contentextensions/ContentExtension.h:44
> +    enum class CompileCSS { Yes, No };

I'd suggest ShouldCompileCSS naming. Also we usually have No come first so that its value is 0. So:
enum class ShouldCompileCSS { No, Yes };
Comment 8 Ryosuke Niwa 2018-04-05 18:52:37 PDT
Comment on attachment 337279 [details]
Patch

r=me assuming you'd address Chris' comment.
Comment 9 Radar WebKit Bug Importer 2018-04-05 18:55:30 PDT
<rdar://problem/39227867>
Comment 10 youenn fablet 2018-04-05 21:18:24 PDT
Created attachment 337343 [details]
Patch for landing
Comment 11 Ryosuke Niwa 2018-04-05 21:23:19 PDT
Did you mean to set cq+ on this patch?
Comment 12 WebKit Commit Bot 2018-04-05 22:23:23 PDT
Comment on attachment 337343 [details]
Patch for landing

Clearing flags on attachment: 337343

Committed r230326: <https://trac.webkit.org/changeset/230326>
Comment 13 WebKit Commit Bot 2018-04-05 22:23:25 PDT
All reviewed patches have been landed.  Closing bug.