Summary: | [Mac] Some tests intermittently asserts in SharedBuffer::releasePurgeableBuffer() | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Ryosuke Niwa <rniwa> | ||||
Component: | Page Loading | Assignee: | Simon Fraser (smfr) <simon.fraser> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Critical | CC: | ap, bdakin, beidson, dfarler, japhet, jberlin, kling, koivisto, krit, psolanki, simon.fraser, slewis, webkit-bug-importer, webkit.review.bot | ||||
Priority: | P1 | Keywords: | InRadar, Regression | ||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Attachments: |
|
Description
Ryosuke Niwa
2013-01-02 19:16:08 PST
http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r138686%20(5395)/transitions/hang-with-bad-transition-list-crash-log.txt http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&tests=svg%2Fdynamic-updates%2FSVGFEMorphologyElement-dom-in-attr.html Also see http://webkit.org/b/105987. Added a flaky crash expectation in http://trac.webkit.org/changeset/138694. *** Bug 105987 has been marked as a duplicate of this bug. *** This assertion also happens on following tests: svg/dynamic-updates/SVGFEMorphologyElement-dom-in-attr.html svg/dynamic-updates/SVGFEMorphologyElement-dom-radius-attr.html transitions/interrupt-transform-transition.html And they appear to affect random tests. We need to fix this crash ASAP. It's making all debug bots always red. Updated the test expectation in http://trac.webkit.org/changeset/138718 but this is really a losing battle as the assertion failure appears to affect random tests. Another crash in SharedBuffer code that might be related to this one: http://build.webkit.org/results/Apple%20MountainLion%20Release%20WK2%20(Tests)/r138711%20(4424)/results.html Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.WebCore 0x000000010d7d8354 WebCore::SharedBuffer::hasPlatformData() const + 4 (RetainPtr.h:101) 1 com.apple.WebCore 0x000000010d7d74ee WebCore::SharedBuffer::size() const + 14 (SharedBuffer.cpp:118) 2 com.apple.WebCore 0x000000010d7d8544 -[WebCoreSharedBufferData length] + 20 (SharedBufferMac.mm:84) 3 com.apple.Foundation 0x00007fff88482e4d -[NSData(NSData) initWithData:] + 37 4 com.apple.AppKit 0x00007fff8619cf74 -[NSRTFReader initWithRTF:] + 239 5 com.apple.AppKit 0x00007fff85c59870 _NSReadAttributedStringFromURLOrData + 4932 6 com.apple.AppKit 0x00007fff85c58493 -[NSAttributedString(NSAttributedStringKitAdditions) initWithData:options:documentAttributes:error:] + 112 7 com.apple.WebCore 0x000000010d5d27fe WebCore::documentFragmentWithRTF(WebCore::Frame*, NSString*, WTF::String const&) + 622 (PasteboardMac.mm:410) 8 com.apple.WebCore 0x000000010d5d0436 WebCore::Pasteboard::documentFragment(WebCore::Frame*, WTF::PassRefPtr<WebCore::Range>, bool, bool&) + 5606 (PassRefPtr.h:105) 9 com.apple.WebCore 0x000000010cf7c61b WebCore::Editor::pasteWithPasteboard(WebCore::Pasteboard*, bool) + 187 (PassRefPtr.h:105) 10 com.apple.WebCore 0x000000010cf6edfa WebCore::Editor::paste() + 154 (Editor.cpp:1031) 11 com.apple.WebCore 0x000000010cf7a5b9 WebCore::executePaste(WebCore::Frame*, WebCore::Event*, WebCore::EditorCommandSource, WTF::String const&) + 73 (EditorCommand.cpp:915) 12 com.apple.WebCore 0x000000010cf77f24 WebCore::Editor::Command::execute(WTF::String const&, WebCore::Event*) const + 196 (EditorCommand.cpp:1705) 13 com.apple.WebCore 0x000000010ce5aad7 WebCore::Document::execCommand(WTF::String const&, bool, WTF::String const&) + 103 (Document.cpp:4159) 14 com.apple.WebCore 0x000000010d269b08 WebCore::jsDocumentPrototypeFunctionExecCommand(JSC::ExecState*) + 584 (JSValue.h:424) 15 ??? 0x000027b369001045 0 + 43651514241093 16 com.apple.JavaScriptCore 0x000000010c84b2b0 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) + 3840 (JSValueInlines.h:360) 17 com.apple.JavaScriptCore 0x000000010c79a720 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, JSC::JSValue*) + 512 (Completion.cpp:75) 18 com.apple.WebCore 0x000000010d790600 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld*) + 448 (JSMainThreadExecState.h:77) 19 com.apple.WebCore 0x000000010d790789 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&) + 41 (ScriptController.cpp:158) 20 com.apple.WebCore 0x000000010d7997b3 WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&) + 467 (ScriptValue.h:51) 21 com.apple.WebCore 0x000000010d7984dc WebCore::ScriptElement::prepareScript(WTF::TextPosition const&, WebCore::ScriptElement::LegacyTypeSupport) + 1068 (ScriptSourceCode.h:44) 22 com.apple.WebCore 0x000000010d0d078b WebCore::HTMLScriptRunner::runScript(WebCore::Element*, WTF::TextPosition const&) + 331 (ScriptElement.h:58) 23 com.apple.WebCore 0x000000010d0d05f0 WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr<WebCore::Element>, WTF::TextPosition const&) + 48 (RefPtr.h:58) 24 com.apple.WebCore 0x000000010d07d3f4 WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() + 84 (PassRefPtr.h:68) 25 com.apple.WebCore 0x000000010d07d478 WebCore::HTMLDocumentParser::canTakeNextToken(WebCore::HTMLDocumentParser::SynchronousMode, WebCore::PumpSession&) + 88 (HTMLDocumentParser.cpp:218) 26 com.apple.WebCore 0x000000010d07d17c WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 284 (HTMLDocumentParser.cpp:254) 27 com.apple.WebCore 0x000000010d07d7fd WebCore::HTMLDocumentParser::append(WebCore::SegmentedString const&) + 237 (HTMLDocumentParser.cpp:363) 28 com.apple.WebCore 0x000000010ce3a757 WebCore::DecodedDataDocumentParser::flush(WebCore::DocumentWriter*) + 103 (SegmentedString.h:138) 29 com.apple.WebCore 0x000000010ce7b9ee WebCore::DocumentWriter::end() + 46 (RefPtr.h:66) 30 com.apple.WebCore 0x000000010ce6b133 WebCore::DocumentLoader::finishedLoading() + 147 (ResourceErrorBase.h:42) 31 com.apple.WebCore 0x000000010d55602c WebCore::MainResourceLoader::didFinishLoading(double) + 316 (OwnPtr.h:65) 32 com.apple.WebCore 0x000000010cd240ad WebCore::CachedResource::checkNotify() + 93 (CachedResource.cpp:336) 33 com.apple.WebCore 0x000000010cd21ba6 WebCore::CachedRawResource::data(WTF::PassRefPtr<WebCore::ResourceBuffer>, bool) + 454 (PassRefPtr.h:68) 34 com.apple.WebCore 0x000000010d86641f WebCore::SubresourceLoader::didFinishLoading(double) + 143 (PassRefPtr.h:68) 35 com.apple.Foundation 0x00007fff88440f58 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 28 36 com.apple.Foundation 0x00007fff88440e9c -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 227 37 com.apple.Foundation 0x00007fff88440d98 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 63 38 com.apple.CFNetwork 0x00007fff8d772fd1 ___delegate_didFinishLoading_block_invoke_0 + 40 39 com.apple.CFNetwork 0x00007fff8d765753 ___withDelegateAsync_block_invoke_0 + 90 40 com.apple.CFNetwork 0x00007fff8d7f42ca __block_global_1 + 28 41 com.apple.CoreFoundation 0x00007fff8d46d724 CFArrayApplyFunction + 68 42 com.apple.CFNetwork 0x00007fff8d756a6c RunloopBlockContext::perform() + 126 43 com.apple.CFNetwork 0x00007fff8d75694b MultiplexerSource::perform() + 221 44 com.apple.CoreFoundation 0x00007fff8d44f101 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 45 com.apple.CoreFoundation 0x00007fff8d44ea25 __CFRunLoopDoSources0 + 245 46 com.apple.CoreFoundation 0x00007fff8d471dc5 __CFRunLoopRun + 789 47 com.apple.CoreFoundation 0x00007fff8d4716b2 CFRunLoopRunSpecific + 290 48 com.apple.HIToolbox 0x00007fff8c56e0a4 RunCurrentEventLoopInMode + 209 49 com.apple.HIToolbox 0x00007fff8c56de42 ReceiveNextEventCommon + 356 50 com.apple.HIToolbox 0x00007fff8c56dcd3 BlockUntilNextEventMatchingListInMode + 62 51 com.apple.AppKit 0x00007fff85d25613 _DPSNextEvent + 685 52 com.apple.AppKit 0x00007fff85d24ed2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128 53 com.apple.AppKit 0x00007fff85d1c283 -[NSApplication run] + 517 54 com.apple.WebCore 0x000000010d786e93 WebCore::RunLoop::run() + 67 (RunLoopMac.mm:36) 55 com.apple.WebKit2 0x000000010c288774 WebKit::WebProcessMain(WebKit::CommandLine const&) + 3485 (RefPtr.h:56) 56 com.apple.WebKit2 0x000000010c22ba4c WebKitMain + 324 (WebKitMain.cpp:58) Any idea when this started? (In reply to comment #9) > Any idea when this started? It’s hard to tell because this is an intermittent failure. http://build.webkit.org/results/Apple%20MountainLion%20Release%20WK2%20(Tests)/r138800%20(4459)/results.html Also has a crash in SharedBuffer::hasPlatformData(). Despite of the fact I only comment on this bug few times a day, this crash is recurring on bots extremely often and preventing us from making WebKit2 bots green. Another example: http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK1%20(Tests)/r138819%20(4325)/results.html This may have been caused by my change in <http://trac.webkit.org/changeset/134987>. Looking. (In reply to comment #13) > This may have been caused by my change in <http://trac.webkit.org/changeset/134987>. Looking. Any update on this? We are still seeing this intermittently (e.g: http://build.webkit.org/results/Apple%20Lion%20Debug%20WK2%20(Tests)/r141772%20(7103)/transitions/inherit-crash-log.txt) This is the most common remaining cause of red bots. It affects lots of different tests so we can't just skip tests to avoid it. Always hit on http://www.thewildernessdowntown.com for several different buffers. These buffers seem to be always wrapped in WebCoreSharedBufferData: * thread #1: tid = 0x2203, 0x0000000104dd21b8 WebCore`-[WebCoreSharedBufferData initWithSharedBuffer:] + 24 at SharedBufferMac.mm:76, stop reason = breakpoint 10.1 frame #0: 0x0000000104dd21b8 WebCore`-[WebCoreSharedBufferData initWithSharedBuffer:] + 24 at SharedBufferMac.mm:76 frame #1: 0x0000000104dd247e WebCore`WebCore::SharedBuffer::createCFData() + 158 at SharedBufferMac.mm:115 frame #2: 0x000000010403c1bb WebCore`WebCore::ImageSource::setData(WebCore::SharedBuffer*, bool) + 75 at ImageSourceCG.cpp:148 frame #3: 0x000000010371a156 WebCore`WebCore::BitmapImage::dataChanged(bool) + 374 at BitmapImage.cpp:256 frame #4: 0x0000000104026fc5 WebCore`WebCore::Image::setData(WTF::PassRefPtr<WebCore::SharedBuffer>, bool) + 165 at Image.cpp:81 frame #5: 0x000000010374b237 WebCore`WebCore::CachedImage::data(WTF::PassRefPtr<WebCore::ResourceBuffer>, bool) + 263 at CachedImage.cpp:370 frame #6: 0x0000000104f01d64 WebCore`WebCore::SubresourceLoader::sendDataToResource(char const*, int) + 340 at SubresourceLoader.cpp:267 frame #7: 0x0000000104f0211f WebCore`WebCore::SubresourceLoader::didReceiveDataOrBuffer(char const*, int, WTF::PassRefPtr<WebCore::SharedBuffer>, long long, WebCore::DataPayloadType) + 623 at SubresourceLoader.cpp:241 frame #8: 0x0000000104f01e96 WebCore`WebCore::SubresourceLoader::didReceiveData(char const*, int, long long, WebCore::DataPayloadType) + 102 at SubresourceLoader.cpp:218 frame #9: 0x000000010140c6bf WebKit2`WebKit::WebResourceLoader::didReceiveData(CoreIPC::DataReference const&, long long) + 223 at WebResourceLoader.cpp:93 frame #10: 0x000000010140e272 WebKit2`void CoreIPC::callMemberFunction<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(CoreIPC::DataReference const&, long long), CoreIPC::DataReference, long long>(CoreIPC::Arguments2<CoreIPC::DataReference, long long> const&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(CoreIPC::DataReference const&, long long)) + 146 at HandleMessage.h:27 I marked some more tests as crashing in debug in r146009 Created attachment 193468 [details]
Patch
Comment on attachment 193468 [details] Patch Rejecting attachment 193468 [details] from commit-queue. Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=webkit-commit-queue.appspot.com', '--bot-id=gce-cq-02', 'land-attachment', '--force-clean', '--non-interactive', '--parent-command=commit-queue', 193468, '--port=chromium-xvfb']" exit_code: 2 cwd: /mnt/git/webkit-commit-queue Last 500 characters of output: WebKit/chromium/v8 --revision 13956 --non-interactive --force --accept theirs-conflict --ignore-externals' in '/mnt/git/webkit-commit-queue/Source/WebKit/chromium' 55>At revision 13956. ________ running '/usr/bin/python tools/clang/scripts/update.py --mac-only' in '/mnt/git/webkit-commit-queue/Source/WebKit/chromium' ________ running '/usr/bin/python gyp_webkit' in '/mnt/git/webkit-commit-queue/Source/WebKit/chromium' Updating webkit projects from gyp files... Total errors found: 0 in 0 files Full output: http://webkit-commit-queue.appspot.com/results/17238171 |