Bug 156172

Summary: Re-enable event dispatch assertions during render tree construction
Product: WebKit Reporter: Antti Koivisto <koivisto>
Component: DOMAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: ap
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Antti Koivisto 2016-04-04 10:36:34 PDT
Had to disable assertion against event dispatch in RenderTreeUpdater::updateRenderTree() because these

https://build.webkit.org/results/Apple%20iOS%209%20Simulator%20Debug%20WK2%20(Tests)/r199003%20(747)/results.html

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   JavaScriptCore                	0x000000010afb3067 WTFCrash + 39 (Assertions.cpp:322)
1   JavaScriptCore                	0x000000010afb3089 WTFCrashWithSecurityImplication + 9
2   com.apple.WebCore             	0x000000010d4812d9 WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WebCore::Event&) + 73 (EventDispatcher.cpp:153)
3   com.apple.WebCore             	0x000000010e49e10d WebCore::Node::dispatchEvent(WebCore::Event&) + 29 (Node.cpp:2138)
4   com.apple.WebCore             	0x000000010d28833d WebCore::Document::setReadyState(WebCore::Document::ReadyState) + 349 (Document.cpp:1229)
5   com.apple.WebCore             	0x000000010d64a385 WebCore::FrameLoader::checkCompleted() + 261 (FrameLoader.cpp:797)
6   com.apple.WebCore             	0x000000010d64a455 WebCore::FrameLoader::loadDone() + 21 (FrameLoader.cpp:742)
7   com.apple.WebCore             	0x000000010ce7b5a9 WebCore::CachedResourceLoader::loadDone(WebCore::CachedResource*, bool) + 121 (CachedResourceLoader.cpp:991)
8   com.apple.WebCore             	0x000000010ec57f53 WebCore::SubresourceLoader::notifyDone() + 307 (SubresourceLoader.cpp:511)
9   com.apple.WebCore             	0x000000010ec58416 WebCore::SubresourceLoader::didCancel(WebCore::ResourceError const&) + 70 (SubresourceLoader.cpp:498)
10  com.apple.WebCore             	0x000000010e96816a WebCore::ResourceLoader::cancel(WebCore::ResourceError const&) + 442 (ResourceLoader.cpp:589)
11  com.apple.WebCore             	0x000000010e96655d WebCore::ResourceLoader::cancel() + 45 (ResourceLoader.cpp:543)
12  com.apple.WebCore             	0x000000010ec56972 WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&, WebCore::ResourceResponse const&) + 1234 (SubresourceLoader.cpp:213)
13  com.apple.WebCore             	0x000000010e966416 WebCore::ResourceLoader::init(WebCore::ResourceRequest const&) + 982 (ResourceLoader.cpp:155)
14  com.apple.WebCore             	0x000000010ec56227 WebCore::SubresourceLoader::init(WebCore::ResourceRequest const&) + 39 (SubresourceLoader.cpp:144)
15  com.apple.WebCore             	0x000000010ec561af WebCore::SubresourceLoader::create(WebCore::Frame*, WebCore::CachedResource*, WebCore::ResourceRequest const&, WebCore::ResourceLoaderOptions const&) + 223 (SubresourceLoader.cpp:112)
16  com.apple.WebKit              	0x00000001044f45be WebKit::WebLoaderStrategy::loadResource(WebCore::Frame*, WebCore::CachedResource*, WebCore::ResourceRequest const&, WebCore::ResourceLoaderOptions const&) + 78 (WebLoaderStrategy.cpp:77)
17  com.apple.WebCore             	0x000000010ce68300 WebCore::CachedResource::load(WebCore::CachedResourceLoader&, WebCore::ResourceLoaderOptions const&) + 1808 (CachedResource.cpp:281)
18  com.apple.WebCore             	0x000000010ce5af4c WebCore::CachedImage::load(WebCore::CachedResourceLoader&, WebCore::ResourceLoaderOptions const&) + 92 (CachedImage.cpp:113)
19  com.apple.WebCore             	0x000000010ce789c7 WebCore::CachedResourceLoader::requestResource(WebCore::CachedResource::Type, WebCore::CachedResourceRequest&) + 3239 (CachedResourceLoader.cpp:625)
20  com.apple.WebCore             	0x000000010ce777d9 WebCore::CachedResourceLoader::requestImage(WebCore::CachedResourceRequest&) + 393 (CachedResourceLoader.cpp:190)
21  com.apple.WebCore             	0x000000010d0b82c3 WebCore::CSSImageValue::cachedImage(WebCore::CachedResourceLoader&, WebCore::ResourceLoaderOptions const&) + 371 (CSSImageValue.cpp:88)
22  com.apple.WebCore             	0x000000010ec156da WebCore::StyleResolver::loadPendingImage(WebCore::StylePendingImage const&, WebCore::ResourceLoaderOptions const&) + 122 (StyleResolver.cpp:2061)
23  com.apple.WebCore             	0x000000010ec1590e WebCore::StyleResolver::loadPendingImage(WebCore::StylePendingImage const&) + 190 (StyleResolver.cpp:2083)
24  com.apple.WebCore             	0x000000010ec15ece WebCore::StyleResolver::loadPendingImages() + 1134 (StyleResolver.cpp:2133)
25  com.apple.WebCore             	0x000000010ec0fdf7 WebCore::StyleResolver::loadPendingResources() + 183 (StyleResolver.cpp:2224)
26  com.apple.WebCore             	0x000000010ec0e119 WebCore::StyleResolver::applyMatchedProperties(WebCore::StyleResolver::MatchResult const&, WebCore::Element const&, WebCore::StyleResolver::ShouldUseMatchedPropertiesCache) + 1625 (StyleResolver.cpp:1362)
27  com.apple.WebCore             	0x000000010ec108c8 WebCore::StyleResolver::pseudoStyleForElement(WebCore::Element&, WebCore::PseudoStyleRequest const&, WebCore::RenderStyle&) + 888 (StyleResolver.cpp:594)
28  com.apple.WebCore             	0x000000010e6b3fb9 WebCore::RenderElement::getUncachedPseudoStyle(WebCore::PseudoStyleRequest const&, WebCore::RenderStyle*, WebCore::RenderStyle*) const + 489 (RenderElement.cpp:1586)
29  com.apple.WebCore             	0x000000010e6b3d39 WebCore::RenderElement::getCachedPseudoStyle(WebCore::PseudoId, WebCore::RenderStyle*) const + 185 (RenderElement.cpp:1558)
30  com.apple.WebCore             	0x000000010dfd1ceb WebCore::needsPseudoElement(WebCore::Element&, WebCore::PseudoId) + 139 (RenderTreeUpdater.cpp:439)
31  com.apple.WebCore             	0x000000010dfd0c47 WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement(WebCore::Element&, WebCore::PseudoId) + 199 (RenderTreeUpdater.cpp:452)
32  com.apple.WebCore             	0x000000010dfd0b5d WebCore::RenderTreeUpdater::pushParent(WebCore::Element&, WebCore::Style::Change) + 125 (RenderTreeUpdater.cpp:169)
33  com.apple.WebCore             	0x000000010dfd0367 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&) + 1079 (RenderTreeUpdater.cpp:145)
34  com.apple.WebCore             	0x000000010dfcfdea WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr<WebCore::Style::Update const, std::__1::default_delete<WebCore::Style::Update const> >) + 794 (RenderTreeUpdater.cpp:87)
35  com.apple.WebCore             	0x000000010d28c58d WebCore::Document::recalcStyle(WebCore::Style::Change) + 1565 (Document.cpp:1943)
36  com.apple.WebCore             	0x000000010d281561 WebCore::Document::updateStyleIfNeeded() + 305 (Document.cpp:1990)
37  com.apple.WebCore             	0x000000010d29bf45 WebCore::Document::finishedParsing() + 453 (Document.cpp:5089)
38  com.apple.WebCore             	0x000000010d796288 WebCore::HTMLConstructionSite::finishedParsing() + 24 (HTMLConstructionSite.cpp:413)
39  com.apple.WebCore             	0x000000010d8f0cb3 WebCore::HTMLTreeBuilder::finished() + 195 (HTMLTreeBuilder.cpp:2971)
40  com.apple.WebCore             	0x000000010d7c64a4 WebCore::HTMLDocumentParser::end() + 196 (HTMLDocumentParser.cpp:406)
41  com.apple.WebCore             	0x000000010d7c4414 WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd() + 260 (HTMLDocumentParser.cpp:415)
42  com.apple.WebCore             	0x000000010d7c41b2 WebCore::HTMLDocumentParser::prepareToStopParsing() + 274 (HTMLDocumentParser.cpp:135)
43  com.apple.WebCore             	0x000000010d7c64ef WebCore::HTMLDocumentParser::attemptToEnd() + 63 (HTMLDocumentParser.cpp:427)
44  com.apple.WebCore             	0x000000010d7c6548 WebCore::HTMLDocumentParser::finish() + 72 (HTMLDocumentParser.cpp:455)
45  com.apple.WebCore             	0x000000010d34a312 WebCore::DocumentWriter::end() + 338 (DocumentWriter.cpp:257)
46  com.apple.WebCore             	0x000000010d3038be WebCore::DocumentLoader::finishedLoading(double) + 398 (DocumentLoader.cpp:437)
47  com.apple.WebCore             	0x000000010d3036a5 WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource*) + 389 (DocumentLoader.cpp:384)
48  com.apple.WebCore             	0x000000010ce684d2 WebCore::CachedResource::checkNotify() + 130 (CachedResource.cpp:296)
49  com.apple.WebCore             	0x000000010ce685e1 WebCore::CachedResource::finishLoading(WebCore::SharedBuffer*) + 49 (CachedResource.cpp:314)
50  com.apple.WebCore             	0x000000010ce639ea WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*) + 218 (CachedRawResource.cpp:104)
51  com.apple.WebCore             	0x000000010ec57ad4 WebCore::SubresourceLoader::didFinishLoading(double) + 532 (SubresourceLoader.cpp:430)
52  com.apple.WebKit              	0x00000001044ee093 WebKit::WebResourceLoader::didFinishResourceLoad(double) + 243 (WebResourceLoader.cpp:160)
53  com.apple.WebKit              	0x00000001044f3a63 void IPC::callMemberFunctionImpl<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(double), std::__1::tuple<double>, 0ul>(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(double), std::__1::tuple<double>&&, std::index_sequence<0ul>) + 163 (HandleMessage.h:17)
54  com.apple.WebKit              	0x00000001044f39b8 void IPC::callMemberFunction<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(double), std::__1::tuple<double>, std::make_index_sequence<1ul> >(std::__1::tuple<double>&&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(double)) + 88 (HandleMessage.h:23)
55  com.apple.WebKit              	0x00000001044f2ad2 void IPC::handleMessage<Messages::WebResourceLoader::DidFinishResourceLoad, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(double)>(IPC::MessageDecoder&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(double)) + 226 (HandleMessage.h:93)
56  com.apple.WebKit              	0x00000001044f224c WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&, IPC::MessageDecoder&) + 636 (WebResourceLoaderMessageReceiver.cpp:66)
57  com.apple.WebKit              	0x0000000103fe0a80 WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) + 160 (NetworkProcessConnection.cpp:60)
58  com.apple.WebKit              	0x0000000103dd4de3 IPC::Connection::dispatchMessage(IPC::MessageDecoder&) + 51 (Connection.cpp:896)
59  com.apple.WebKit              	0x0000000103dcc0c1 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >) + 785 (Connection.cpp:928)
60  com.apple.WebKit              	0x0000000103dd53df IPC::Connection::dispatchOneMessage() + 1519 (Connection.cpp:957)
61  com.apple.WebKit              	0x0000000103de4cad IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10::operator()() const + 29 (Connection.cpp:890)
62  com.apple.WebKit              	0x0000000103de4c7d void std::__1::__invoke_void_return_wrapper<void>::__call<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10&>(IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10&&&) + 45 (__functional_base:441)
63  com.apple.WebKit              	0x0000000103de4acc std::__1::__function::__func<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10, std::__1::allocator<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)::$_10>, void ()>::operator()() + 44 (functional:1407)
64  JavaScriptCore                	0x000000010a9d634a std::__1::function<void ()>::operator()() const + 26 (functional:1793)
65  JavaScriptCore                	0x000000010b001872 WTF::RunLoop::performWork() + 306 (RunLoop.cpp:106)
66  JavaScriptCore                	0x000000010b002094 WTF::RunLoop::performWork(void*) + 36 (RunLoopCF.cpp:38)
67  com.apple.CoreFoundation      	0x00000001068ac0a1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
68  com.apple.CoreFoundation      	0x00000001068a1fcc __CFRunLoopDoSources0 + 556
69  com.apple.CoreFoundation      	0x00000001068a1483 __CFRunLoopRun + 867
70  com.apple.CoreFoundation      	0x00000001068a0e98 CFRunLoopRunSpecific + 488
71  com.apple.Foundation          	0x0000000103913891 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 267
72  com.apple.Foundation          	0x00000001039a6221 -[NSRunLoop(NSRunLoop) run] + 74
73  libxpc.dylib                  	0x0000000107d84534 _xpc_objc_main + 400
74  libxpc.dylib                  	0x0000000107d868ee xpc_main + 189
75  com.apple.WebKit.WebContent.Development	0x00000001038420df main + 895 (XPCServiceMain.mm:114)
76  libdyld.dylib                 	0x0000000107ac292d start + 1
Comment 1 Antti Koivisto 2016-04-04 10:41:02 PDT
Disabled the assertion again in https://trac.webkit.org/r199008
Comment 2 Antti Koivisto 2020-03-04 03:53:52 PST
This requires getting rid of the synchronous cancellation of resource loads.