Bug 69200
Summary: | Assertions when !renderer->needsLayout() | ||
---|---|---|---|
Product: | WebKit | Reporter: | Adam Barth <abarth> |
Component: | Layout and Rendering | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | linchong_jx, mitz, sam |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Adam Barth
This seem to be cropping up randomly:
http/tests/inspector/change-iframe-src.html
media/video-src-change.html
svg/custom/recursive-mask.svg
media/video-replaces-poster.html
ASSERTION FAILED: !renderer->needsLayout()
third_party/WebKit/Source/WebCore/rendering/RenderView.cpp(147) : virtual void WebCore::RenderView::layout()
[14890:14890:14267711790715:ERROR:process_util_posix.cc(134)] Received signal 11
base::debug::StackTrace::StackTrace() [0x6f8d8a]
base::(anonymous namespace)::StackDumpSignalHandler() [0x6b6281]
0x2b81e4a7baf0
WebCore::RenderView::layout() [0x163e157]
WebCore::FrameView::layout() [0x1248ac1]
WebCore::FrameView::visibleContentsResized() [0x124b1e9]
WebCore::ScrollView::updateScrollbars() [0xe0963d]
WebCore::ScrollView::setContentsSize() [0xe08643]
WebCore::FrameView::setContentsSize() [0x1246d43]
WebCore::FrameView::adjustViewSize() [0x1246fa3]
WebCore::FrameView::layout() [0x1248b73]
WebCore::Document::implicitClose() [0xc1fb49]
WebCore::FrameLoader::checkCallImplicitClose() [0x11a055b]
WebCore::FrameLoader::checkCompleted() [0x11a032e]
WebCore::FrameLoader::finishedParsing() [0x11a0087]
WebCore::Document::finishedParsing() [0xc2841c]
WebCore::XMLDocumentParser::end() [0x1341af0]
WebCore::XMLDocumentParser::finish() [0x1341b2a]
WebCore::DocumentWriter::endIfNotLoadingMainResource() [0x11960a3]
WebCore::DocumentWriter::end() [0x1195fab]
WebCore::DocumentLoader::finishedLoading() [0x11874f1]
WebCore::FrameLoader::finishedLoading() [0x11a7029]
WebCore::MainResourceLoader::didFinishLoading() [0x11bbc1a]
WebCore::ResourceLoader::didFinishLoading() [0x11ce8a9]
WebCore::ResourceHandleInternal::didFinishLoading() [0x4f4648]
webkit_glue::WebURLLoaderImpl::Context::OnCompletedRequest() [0x1a4ae9c]
(anonymous namespace)::RequestProxy::NotifyCompletedRequest() [0x1b06915]
DispatchToMethod<>() [0x1b0cffd]
RunnableMethod<>::Run() [0x1b0c430]
base::subtle::TaskClosureAdapter::Run() [0x6d5a87]
base::internal::Invoker1<>::DoInvoke() [0x6947d2]
base::Callback<>::Run() [0x676a85]
MessageLoop::RunTask() [0x691375]
MessageLoop::DeferOrRunPendingTask() [0x69147d]
MessageLoop::DoWork() [0x691c93]
base::MessagePumpGlib::HandleDispatch() [0x6ea61d]
(anonymous namespace)::WorkSourceDispatch() [0x6e9b6f]
0x2b81deec58c2
0x2b81deec9748
0x2b81deec98fc
base::MessagePumpGtk::RunOnce() [0x6ebe85]
base::MessagePumpGlib::RunWithDispatcher() [0x6ea2d0]
base::MessagePumpGlib::Run() [0x6ea6fa]
MessageLoop::RunInternal() [0x691169]
MessageLoop::RunHandler() [0x69101c]
MessageLoop::Run() [0x690a37]
webkit_support::RunMessageLoop() [0x60c96c]
TestShell::waitTestFinished() [0x461b95]
TestShell::runFileTest() [0x45a8b8]
runTest() [0x42ee78]
main [0x42f88b]
0x2b81e4a66c4d
0x41dea9
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Adam Barth
Windows too:
ASSERTION FAILED: !renderer->needsLayout()
Backtrace:
WebCore::RenderView::layout [0x011B588B+795] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\rendering\renderview.cpp:147)
WebCore::FrameView::layout [0x0132966B+2347] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\page\frameview.cpp:1096)
WebCore::Document::implicitClose [0x01AFB814+852] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\dom\document.cpp:2235)
WebCore::FrameLoader::checkCallImplicitClose [0x013D89B4+132] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\frameloader.cpp:797)
WebCore::FrameLoader::checkCompleted [0x013D8742+242] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\frameloader.cpp:746)
WebCore::FrameLoader::finishedParsing [0x013D84A8+152] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\frameloader.cpp:680)
WebCore::Document::finishedParsing [0x01B0487F+351] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\dom\document.cpp:4295)
WebCore::HTMLTreeBuilder::finished [0x01AD3D44+100] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmltreebuilder.cpp:2826)
WebCore::HTMLDocumentParser::end [0x01AA45C3+131] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmldocumentparser.cpp:382)
WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd [0x01AA4696+182] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmldocumentparser.cpp:391)
WebCore::HTMLDocumentParser::prepareToStopParsing [0x01AA33EC+188] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmldocumentparser.cpp:154)
WebCore::HTMLDocumentParser::attemptToEnd [0x01AA4709+57] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmldocumentparser.cpp:402)
WebCore::HTMLDocumentParser::finish [0x01AA4863+51] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmldocumentparser.cpp:430)
WebCore::DocumentWriter::endIfNotLoadingMainResource [0x014A3625+229] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\documentwriter.cpp:235)
WebCore::DocumentWriter::end [0x014A3527+39] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\documentwriter.cpp:215)
WebCore::DocumentLoader::finishedLoading [0x014804A4+84] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\documentloader.cpp:286)
WebCore::FrameLoader::finishedLoading [0x013DE702+82] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\frameloader.cpp:2085)
WebCore::MainResourceLoader::didFinishLoading [0x0176B8B0+304] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\mainresourceloader.cpp:477)
WebCore::ResourceLoader::didFinishLoading [0x017645F1+97] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\resourceloader.cpp:451)
WebCore::ResourceHandleInternal::didFinishLoading [0x00A7DBC0+144] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webkit\chromium\src\resourcehandle.cpp:158)
webkit_glue::WebURLLoaderImpl::Context::OnCompletedRequest [0x00B7B505+533] (e:\b\build\slave\webkit_win__dbg__1_\build\src\webkit\glue\weburlloader_impl.cc:629)
`anonymous namespace'::RequestProxy::NotifyCompletedRequest [0x00AFFD49+57] (e:\b\build\slave\webkit_win__dbg__1_\build\src\webkit\tools\test_shell\simple_resource_loader_bridge.cc:289)
[0x00B08211+33] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\tuple.h:560)
[0x00B067B5+53] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\task.h:348)
base::subtle::TaskClosureAdapter::Run [0x022BE672+50] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\task.cc:56)
base::internal::Invoker1<0,base::internal::InvokerStorage1<void (__thiscall base::subtle::TaskClosureAdapter::*)(void),base::subtle::TaskClosureAdapter *>,void (__thiscall base::subtle::TaskClosureAdapter::*)(void)>::DoInvoke [0x022B8EED+45] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\bind_internal.h:595)
base::Callback<void __cdecl(void)>::Run [0x008BA37F+47] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\callback.h:269)
MessageLoop::RunTask [0x022AF595+293] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:478)
MessageLoop::DeferOrRunPendingTask [0x022AF6D3+51] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:495)
MessageLoop::DoWork [0x022B00AD+221] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:682)
base::MessagePumpForUI::DoRunLoop [0x0231B574+84] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_pump_win.cc:203)
base::MessagePumpWin::RunWithDispatcher [0x0231ADF2+130] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_pump_win.cc:51)
base::MessagePumpWin::Run [0x0231B05C+28] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_pump_win.h:80)
MessageLoop::RunInternal [0x022AF2E7+247] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:443)
MessageLoop::RunHandler [0x022AF0BE+46] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:417)
MessageLoop::Run [0x022AE9CA+58] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:341)
webkit_support::RunMessageLoop [0x0090058F+15] (e:\b\build\slave\webkit_win__dbg__1_\build\src\webkit\support\webkit_support.cc:401)
TestShell::waitTestFinished [0x0042CEBD+141] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\tools\dumprendertree\chromium\testshellwin.cpp:106)
TestShell::runFileTest [0x0044796F+479] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\tools\dumprendertree\chromium\testshell.cpp:233)
runTest [0x0041BB3D+733] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\tools\dumprendertree\chromium\dumprendertree.cpp:125)
main [0x0041B336+2262] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\tools\dumprendertree\chromium\dumprendertree.cpp:256)
__tmainCRTStartup [0x00AA5857+279] (f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:266)
mainCRTStartup [0x00AA572F+15] (f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:182)
RegisterWaitForInputIdle [0x7C817077+73]
None
Adam Barth
Seems to have been caused but this patch:
http://trac.webkit.org/changeset/96427
Adam Barth
Adding the authors of the patch that is triggering the assertions.
Adam Barth
I've removed the assert in http://trac.webkit.org/changeset/96445. If this assert is catching real bugs, we should fix those bugs and then add the assert back.
Adam Barth
I would comment on the original bug, but it's only in rdar.
Adam Barth
fast/flexbox/021.html seems to be a popular test to trigger the assert.
mitz
I am terribly sorry. This was not meant to be checked in, and not part of the patch as reviewed. Thanks for reverting the change!
Longinc
ASSERT FAILED:
ASSERT(!renderer()->needsLayout());
1 0x1129a33 WebCore::HTMLFormControlElement::isFocusable() const
2 0x1142445 WebCore::HTMLInputElement::isMouseFocusable() const
3 0x114c3a1 WebCore::HTMLLabelElement::defaultEventHandler(WebCore::Event*)
4 0xfc46b9 WebCore::EventDispatcher::dispatchEvent(WTF::PassRefPtr<WebCore::Event>)
5 0x13e331b WebCore::MouseEventDispatchMediator::dispatchEvent(WebCore::EventDispatcher*) const
6 0xfc3465 WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr<WebCore::EventDispatchMediator>)
7 0x1400273 WebCore::Node::dispatchMouseEvent(WebCore::PlatformMouseEvent const&, WTF::AtomicString const&, int, WebCore::Node*)
8 0xfcd55b WebCore::EventHandler::dispatchMouseEvent(WTF::AtomicString const&, WebCore::Node*, bool, int, WebCore::PlatformMouseEvent const&, bool)
9 0xfcee75 WebCore::EventHandler::handleMouseReleaseEvent(WebCore::PlatformMouseEvent const&)
Longinc
(In reply to comment #8)
> ASSERT FAILED:
> ASSERT(!renderer()->needsLayout());
> 1 0x1129a33 WebCore::HTMLFormControlElement::isFocusable() const
> 2 0x1142445 WebCore::HTMLInputElement::isMouseFocusable() const
> 3 0x114c3a1 WebCore::HTMLLabelElement::defaultEventHandler(WebCore::Event*)
> 4 0xfc46b9 WebCore::EventDispatcher::dispatchEvent(WTF::PassRefPtr<WebCore::Event>)
> 5 0x13e331b WebCore::MouseEventDispatchMediator::dispatchEvent(WebCore::EventDispatcher*) const
> 6 0xfc3465 WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr<WebCore::EventDispatchMediator>)
> 7 0x1400273 WebCore::Node::dispatchMouseEvent(WebCore::PlatformMouseEvent const&, WTF::AtomicString const&, int, WebCore::Node*)
> 8 0xfcd55b WebCore::EventHandler::dispatchMouseEvent(WTF::AtomicString const&, WebCore::Node*, bool, int, WebCore::PlatformMouseEvent const&, bool)
> 9 0xfcee75 WebCore::EventHandler::handleMouseReleaseEvent(WebCore::PlatformMouseEvent const&)
SVN:112327