RESOLVED FIXED 105988
[Mac] Some inspector tests intermittently assert in InspectorOverlay::paint
https://bugs.webkit.org/show_bug.cgi?id=105988
Summary [Mac] Some inspector tests intermittently assert in InspectorOverlay::paint
Ryosuke Niwa
Reported 2013-01-02 19:21:32 PST
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&tests=inspector%2Fdebugger%2Fpause-in-internal-script.html http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r138686%20(5395)/inspector/debugger/watch-expressions-panel-switch-crash-log.txt 0 com.apple.WebCore 0x0000000104fec88e WebCore::InspectorOverlay::paint(WebCore::GraphicsContext&) + 270 (InspectorOverlay.cpp:213) 1 com.apple.WebCore 0x0000000104f591af WebCore::InspectorController::drawHighlight(WebCore::GraphicsContext&) const + 47 (InspectorController.cpp:310) 2 com.apple.WebKit2 0x00000001023bf429 WebKit::WebInspectorClient::drawRect(WebKit::PageOverlay*, WebCore::GraphicsContext&, WebCore::IntRect const&) + 57 (WebInspectorClient.cpp:128) 3 com.apple.WebKit2 0x00000001023bf46f non-virtual thunk to WebKit::WebInspectorClient::drawRect(WebKit::PageOverlay*, WebCore::GraphicsContext&, WebCore::IntRect const&) + 63 4 com.apple.WebKit2 0x000000010229fae6 WebKit::PageOverlay::drawRect(WebCore::GraphicsContext&, WebCore::IntRect const&) + 198 (PageOverlay.cpp:120) 5 com.apple.WebKit2 0x00000001023f4f3d WebKit::WebPage::drawPageOverlay(WebCore::GraphicsContext&, WebCore::IntRect const&) + 189 (WebPage.cpp:1126) 6 com.apple.WebKit2 0x00000001021e7dcf WebKit::DrawingAreaImpl::display(WebKit::UpdateInfo&) + 1695 (DrawingAreaImpl.cpp:722) 7 com.apple.WebKit2 0x00000001021e6f8e WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState() + 286 (DrawingAreaImpl.cpp:427) 8 com.apple.WebKit2 0x00000001021e770b WebKit::DrawingAreaImpl::updateBackingStoreState(unsigned long long, bool, float, WebCore::IntSize const&, WebCore::IntSize const&) + 875 (DrawingAreaImpl.cpp:414) 9 com.apple.WebKit2 0x00000001021ecf81 void CoreIPC::callMemberFunction<WebKit::DrawingArea, void (WebKit::DrawingArea::*)(unsigned long long, bool, float, WebCore::IntSize const&, WebCore::IntSize const&), unsigned long long, bool, float, WebCore::IntSize, WebCore::IntSize>(CoreIPC::Arguments5<unsigned long long, bool, float, WebCore::IntSize, WebCore::IntSize> const&, WebKit::DrawingArea*, void (WebKit::DrawingArea::*)(unsigned long long, bool, float, WebCore::IntSize const&, WebCore::IntSize const&)) + 193 (HandleMessage.h:46) 10 com.apple.WebKit2 0x00000001021ec082 void CoreIPC::handleMessage<Messages::DrawingArea::UpdateBackingStoreState, WebKit::DrawingArea, void (WebKit::DrawingArea::*)(unsigned long long, bool, float, WebCore::IntSize const&, WebCore::IntSize const&)>(CoreIPC::MessageDecoder&, WebKit::DrawingArea*, void (WebKit::DrawingArea::*)(unsigned long long, bool, float, WebCore::IntSize const&, WebCore::IntSize const&)) + 114 (HandleMessage.h:323) 11 com.apple.WebKit2 0x00000001021ebaa0 WebKit::DrawingArea::didReceiveDrawingAreaMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) + 160 (DrawingAreaMessageReceiver.cpp:44) 12 com.apple.WebKit2 0x00000001023f9e01 WebKit::WebPage::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) + 129 (WebPage.cpp:2949) 13 com.apple.WebKit2 0x00000001023f9efd non-virtual thunk to WebKit::WebPage::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) + 61 14 com.apple.WebKit2 0x000000010256dd8a CoreIPC::MessageReceiverMap::dispatchMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) + 634 (MessageReceiverMap.cpp:87) 15 com.apple.WebKit2 0x00000001024cfc1d WebKit::WebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) + 77 (WebProcess.cpp:590) 16 com.apple.WebKit2 0x00000001021c65c8 CoreIPC::Connection::dispatchMessage(CoreIPC::MessageID, CoreIPC::MessageDecoder&) + 72 (Connection.cpp:662) 17 com.apple.WebKit2 0x00000001021c3a8e CoreIPC::Connection::dispatchMessage(CoreIPC::Connection::Message<CoreIPC::MessageDecoder>&) + 318 (Connection.cpp:684) 18 com.apple.WebKit2 0x00000001021c656b CoreIPC::Connection::dispatchOneMessage() + 203 (Connection.cpp:711) 19 com.apple.WebKit2 0x00000001021cde52 WTF::FunctionWrapper<void (CoreIPC::Connection::*)()>::operator()(CoreIPC::Connection*) + 114 (Functional.h:173) 20 com.apple.WebKit2 0x00000001021cddd5 WTF::BoundFunctionImpl<WTF::FunctionWrapper<void (CoreIPC::Connection::*)()>, void (CoreIPC::Connection*)>::operator()() + 53 (Functional.h:405) 21 com.apple.WebCore 0x0000000105b03e39 WTF::Function<void ()>::operator()() const + 137 (Functional.h:613) 22 com.apple.WebCore 0x0000000105b03b3b WebCore::RunLoop::performWork() + 395 (RunLoop.cpp:89) 23 com.apple.WebCore 0x0000000105b04f8e WebCore::RunLoop::performWork(void*) + 62 (RunLoopCF.cpp:66) 24 com.apple.CoreFoundation 0x00007fff8dedf101 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 25 com.apple.CoreFoundation 0x00007fff8dedea25 __CFRunLoopDoSources0 + 245 26 com.apple.CoreFoundation 0x00007fff8df01dc5 __CFRunLoopRun + 789 27 com.apple.CoreFoundation 0x00007fff8df016b2 CFRunLoopRunSpecific + 290 28 com.apple.HIToolbox 0x00007fff867b00a4 RunCurrentEventLoopInMode + 209 29 com.apple.HIToolbox 0x00007fff867afe42 ReceiveNextEventCommon + 356 30 com.apple.HIToolbox 0x00007fff867afcd3 BlockUntilNextEventMatchingListInMode + 62 31 com.apple.AppKit 0x00007fff897ba613 _DPSNextEvent + 685 32 com.apple.AppKit 0x00007fff897b9ed2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128 33 com.apple.AppKit 0x00007fff897b1283 -[NSApplication run] + 517 34 com.apple.WebCore 0x0000000105b05bec WebCore::RunLoop::run() + 92 (RunLoopMac.mm:37) 35 com.apple.WebKit2 0x00000001024ea5b3 WebKit::WebProcessMain(WebKit::CommandLine const&) + 4451 (WebProcessMainMac.mm:187)
Attachments
Patch (1.51 KB, patch)
2013-08-20 12:22 PDT, Tim Horton
joepeck: review+
Ryosuke Niwa
Comment 1 2013-01-02 19:25:55 PST
Added a flaky crash expectation in http://trac.webkit.org/changeset/138694.
Ryosuke Niwa
Comment 2 2013-01-04 10:29:56 PST
Radar WebKit Bug Importer
Comment 3 2013-01-04 10:30:52 PST
Radar WebKit Bug Importer
Comment 4 2013-01-04 10:30:53 PST
Jessie Berlin
Comment 5 2013-04-18 18:14:57 PDT
This is happening on Lion Debug WK2 tests as well: http://build.webkit.org/results/Apple%20Lion%20Debug%20WK2%20(Tests)/r148713%20(8976)/inspector/debugger/script-extract-outline-crash-log.txt I am going to wait to see that particular test again before marking as flakey.
Jer Noble
Comment 6 2013-08-16 09:57:04 PDT
This test is now consistently flakey on Lion & Mountain Lion WK1 & WK2 bots.
Jer Noble
Comment 7 2013-08-16 11:19:33 PDT
Added flakiness expectations for all Mac platforms in http://trac.webkit.org/changeset/154189.
Tim Horton
Comment 8 2013-08-20 12:02:25 PDT
I tried to track down where the layout is being invalidated and not performed, but failed (the build with logging was far, far too slow, and I couldn't reproduce the problem anymore). I don't see any particular reason why we can't just do layout in InspectorOverlay::paint if it's stale. Anyone?
Tim Horton
Comment 9 2013-08-20 12:22:09 PDT
Joseph Pecoraro
Comment 10 2013-08-20 13:12:16 PDT
Comment on attachment 209218 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=209218&action=review r=me > Source/WebCore/inspector/InspectorOverlay.cpp:213 > + view->updateLayoutAndStyleIfNeededRecursive(); > ASSERT(!view->needsLayout()); Seems like you can remove the ASSERT now.
Tim Horton
Comment 11 2013-08-20 13:22:41 PDT
Note You need to log in before you can comment on or make changes to this bug.