Bug 67425 - Assertion failures in checkEncodedString when running WebKit2 tests
Summary: Assertion failures in checkEncodedString when running WebKit2 tests
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Page Loading (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Alexey Proskuryakov
URL: http://build.webkit.org/results/Lion%...
Keywords: InRadar, LayoutTestFailure, MakingBotsRed
Depends on:
Blocks:
 
Reported: 2011-09-01 12:32 PDT by Simon Fraser (smfr)
Modified: 2012-03-15 14:08 PDT (History)
6 users (show)

See Also:


Attachments
proposed fix (2.77 KB, patch)
2012-03-15 12:47 PDT, Alexey Proskuryakov
andersca: review+
buildbot: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2011-09-01 12:32:08 PDT
The following tests started failing on Lion Intel Debug (WebKit2 Tests) between r94297 and r94298 (inclusive):

    fast/loader/reload-zero-byte-plugin.html
    fast/loader/opaque-base-url.html

http://trac.webkit.org/log/trunk?rev=94298&stop_rev=94297&limit=3

http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r94296%20(401)/results.html passed
http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r94298%20(402)/results.html failed
Comment 1 Simon Fraser (smfr) 2011-09-01 12:32:46 PDT
ASSERTION FAILED: !url.length() || isSchemeFirstChar(url[0])
/Volumes/SSData/Development/OSX/webkit/OpenSource/Source/WebCore/platform/KURL.cpp(300) : void WebCore::checkEncodedString(const WTF::String &)
1   _ZN7WebCoreL18checkEncodedStringERKN3WTF6StringE
2   WebCore::KURL::parse(WTF::String const&)
3   WebCore::KURL::KURL(WebCore::ParsedURLStringTag, WTF::String const&)
4   WebCore::KURL::KURL(WebCore::ParsedURLStringTag, WTF::String const&)
5   WebCore::ResourceError::nsError() const
6   CoreIPC::ArgumentCoder<WebCore::ResourceError>::encode(CoreIPC::ArgumentEncoder*, WebCore::ResourceError const&)
7   void CoreIPC::ArgumentEncoder::encode<WebCore::ResourceError>(WebCore::ResourceError const&)
8   CoreIPC::Arguments2<unsigned long long, WebCore::ResourceError const&>::encode(CoreIPC::ArgumentEncoder*) const
9   CoreIPC::Arguments3<unsigned long long, WebCore::ResourceError const&, WebKit::InjectedBundleUserMessageEncoder const&>::encode(CoreIPC::ArgumentEncoder*) const
10  CoreIPC::ArgumentCoder<Messages::WebPageProxy::DidFailProvisionalLoadForFrame>::encode(CoreIPC::ArgumentEncoder*, Messages::WebPageProxy::DidFailProvisionalLoadForFrame const&)
11  void CoreIPC::ArgumentEncoder::encode<Messages::WebPageProxy::DidFailProvisionalLoadForFrame>(Messages::WebPageProxy::DidFailProvisionalLoadForFrame const&)
12  bool CoreIPC::MessageSender<WebKit::WebPage>::send<Messages::WebPageProxy::DidFailProvisionalLoadForFrame>(Messages::WebPageProxy::DidFailProvisionalLoadForFrame const&, unsigned long long)
13  bool CoreIPC::MessageSender<WebKit::WebPage>::send<Messages::WebPageProxy::DidFailProvisionalLoadForFrame>(Messages::WebPageProxy::DidFailProvisionalLoadForFrame const&)
14  WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad(WebCore::ResourceError const&)
15  WebCore::FrameLoader::checkLoadCompleteForThisFrame()
16  WebCore::FrameLoader::checkLoadComplete()
17  WebCore::FrameLoader::checkCompleted()
18  WebCore::FrameLoader::completed()
19  WebCore::FrameLoader::checkCompleted()
20  WebCore::FrameLoader::completed()
21  WebCore::FrameLoader::checkCompleted()
22  WebCore::FrameLoader::mainReceivedCompleteError(WebCore::DocumentLoader*, WebCore::ResourceError const&)
23  WebCore::DocumentLoader::mainReceivedError(WebCore::ResourceError const&, bool)
24  WebCore::FrameLoader::receivedMainResourceError(WebCore::ResourceError const&, bool)
25  WebCore::MainResourceLoader::receivedError(WebCore::ResourceError const&)
26  WebCore::MainResourceLoader::didFail(WebCore::ResourceError const&)
27  WebCore::ResourceLoader::cannotShowURL(WebCore::ResourceHandle*)
28  WebCore::ResourceHandle::fireFailure(WebCore::Timer<WebCore::ResourceHandle>*)
29  WebCore::Timer<WebCore::ResourceHandle>::fired()
30  WebCore::ThreadTimers::sharedTimerFiredInternal()
31  WebCore::ThreadTimers::sharedTimerFired()
Comment 2 Alexey Proskuryakov 2011-09-02 15:30:41 PDT
r94298 is the only code change in this range, but I don't see how it could possibly cause this.
Comment 3 Jessie Berlin 2012-03-13 17:39:13 PDT
This is still affecting the bots:

http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r110638%20(4870)/http/tests/media/video-play-progress-crash-log.txt

And I can reliably reproduce it on Lion with the following command:

run-webkit-tests -2 LayoutTests/editing/input/reveal-*
Comment 4 Radar WebKit Bug Importer 2012-03-13 17:39:30 PDT
<rdar://problem/11043492>
Comment 5 Alexey Proskuryakov 2012-03-15 12:38:06 PDT
I suspect that this always failed in WebKitTestRunner. r94296-r94298 in particular certainly couldn't have caused this.

The reason why this doesn't happen in Safari or DumpRenderTree is that policy delegate says to ignore an invalid URL "<p>FAILURE</p>". But WebKitTestRunner lets any URL load, so WebKit tries to, and has to make an error callback with this URL.
Comment 6 Alexey Proskuryakov 2012-03-15 12:47:15 PDT
Created attachment 132106 [details]
proposed fix
Comment 7 Build Bot 2012-03-15 12:59:07 PDT
Comment on attachment 132106 [details]
proposed fix

Attachment 132106 [details] did not pass win-ews (win):
Output: http://queues.webkit.org/results/11951860
Comment 8 Alexey Proskuryakov 2012-03-15 14:07:49 PDT
Committed <http://trac.webkit.org/changeset/110882>.