NEW 156172
Re-enable event dispatch assertions during render tree construction
https://bugs.webkit.org/show_bug.cgi?id=156172
Summary Re-enable event dispatch assertions during render tree construction
Antti Koivisto
Reported 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
Attachments
Antti Koivisto
Comment 1 2016-04-04 10:41:02 PDT
Disabled the assertion again in https://trac.webkit.org/r199008
Antti Koivisto
Comment 2 2020-03-04 03:53:52 PST
This requires getting rid of the synchronous cancellation of resource loads.
Note You need to log in before you can comment on or make changes to this bug.