Bug 54592

Summary: [GTK] r78718 introduced some assertion failures in some HTTP tests
Product: WebKit Reporter: Martin Robinson <mrobinson>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: svillar
Priority: P3 Keywords: Gtk
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Attachments:
Description Flags
Patch none

Martin Robinson
Reported 2011-02-16 15:22:50 PST
Here is the assertion stack trace: #0 0x00007faf72480b54 in WTF::HashTableConstIterator<WTF::AtomicString, std::pair<WTF::AtomicString, WTF::String>, WTF::PairFirstExtractor<std::pair<WTF::AtomicString, WTF::String> >, WTF::CaseFoldingHash, WTF::PairHashTraits<WTF::HashTraits<WTF::AtomicString>, WTF::HashTraits<WTF::String> >, WTF::HashTraits<WTF::AtomicString> >::checkValidity (this=0x7fff7a9d5710) at ../../Source/JavaScriptCore/wtf/HashTable.h:193 193 ASSERT(m_table); Thread 1 (Thread 3440): #0 0x00007faf72480b54 in WTF::HashTableConstIterator<WTF::AtomicString, std::pair<WTF::AtomicString, WTF::String>, WTF::PairFirstExtractor<std::pair<WTF::AtomicString, WTF::String> >, WTF::CaseFoldingHash, WTF::PairHashTraits<WTF::HashTraits<WTF::AtomicString>, WTF::HashTraits<WTF::String> >, WTF::HashTraits<WTF::AtomicString> >::checkValidity (this=0x7fff7a9d5710) at ../../Source/JavaScriptCore/wtf/HashTable.h:193 #1 0x00007faf7247ffe0 in WTF::HashTableConstIterator<WTF::AtomicString, std::pair<WTF::AtomicString, WTF::String>, WTF::PairFirstExtractor<std::pair<WTF::AtomicString, WTF::String> >, WTF::CaseFoldingHash, WTF::PairHashTraits<WTF::HashTraits<WTF::AtomicString>, WTF::HashTraits<WTF::String> >, WTF::HashTraits<WTF::AtomicString> >::operator++ (this=0x7fff7a9d5710) at ../../Source/JavaScriptCore/wtf/HashTable.h:168 #2 0x00007faf7248341c in WTF::HashTableIterator<WTF::AtomicString, std::pair<WTF::AtomicString, WTF::String>, WTF::PairFirstExtractor<std::pair<WTF::AtomicString, WTF::String> >, WTF::CaseFoldingHash, WTF::PairHashTraits<WTF::HashTraits<WTF::AtomicString>, WTF::HashTraits<WTF::String> >, WTF::HashTraits<WTF::AtomicString> >::operator++ (this=0x7fff7a9d5710) at ../../Source/JavaScriptCore/wtf/HashTable.h:246 #3 0x00007faf72482dbe in WTF::HashTableIteratorAdapter<WTF::HashTable<WTF::AtomicString, std::pair<WTF::AtomicString, WTF::String>, WTF::PairFirstExtractor<std::pair<WTF::AtomicString, WTF::String> >, WTF::CaseFoldingHash, WTF::PairHashTraits<WTF::HashTraits<WTF::AtomicString>, WTF::HashTraits<WTF::String> >, WTF::HashTraits<WTF::AtomicString> >, std::pair<WTF::AtomicString, WTF::String> >::operator++ (this=0x7fff7a9d5710) at ../../Source/JavaScriptCore/wtf/HashIterators.h:71 #4 0x00007faf724826a8 in WebCore::ResourceRequest::updateFromSoupMessage (this=0x7fff7a9d5ae0, soupMessage=0x1a6c9d0) at ../../Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:105 #5 0x00007faf724b8ced in WebKit::FrameLoaderClient::dispatchWillSendRequest (this=0xfb4940, loader=0x1f71c60, identifier=332, request=..., redirectResponse=...) at ../../Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:397 #6 0x00007faf72b05e87 in WebCore::ResourceLoadNotifier::dispatchWillSendRequest (this=0xfb6668, loader=0x1f71c60, identifier=332, request=..., redirectResponse=...) at ../../Source/WebCore/loader/ResourceLoadNotifier.cpp:115 #7 0x00007faf72acc41f in WebCore::FrameLoader::requestFromDelegate (this=0xfb64a0, request=..., identifier=@0x7fff7a9d5fc8, error=...) at ../../Source/WebCore/loader/FrameLoader.cpp:3057 #8 0x00007faf72acb173 in WebCore::FrameLoader::loadResourceSynchronously (this=0xfb64a0, request=..., storedCredentials=WebCore::AllowStoredCredentials, error=..., response=..., data=...) at ../../Source/WebCore/loader/FrameLoader.cpp:2786 #9 0x00007faf72ababa6 in WebCore::DocumentThreadableLoader::loadRequest (this=0x1ff7210, request=..., securityCheck=WebCore::DoSecurityCheck) at ../../Source/WebCore/loader/DocumentThreadableLoader.cpp:339 #10 0x00007faf72ab8db9 in WebCore::DocumentThreadableLoader::DocumentThreadableLoader (this=0x1ff7210, document=0x2037f90, client=0x1ff6ce0, blockingBehavior=WebCore::DocumentThreadableLoader::LoadSynchronously, request=..., options=...) at ../../Source/WebCore/loader/DocumentThreadableLoader.cpp:76 #11 0x00007faf72ab8498 in WebCore::DocumentThreadableLoader::loadResourceSynchronously (document=0x2037f90, request=..., client=..., options=...) at ../../Source/WebCore/loader/DocumentThreadableLoader.cpp:53 #12 0x00007faf72b11398 in WebCore::ThreadableLoader::loadResourceSynchronously (context=0x2037ff8, request=..., client=..., options=...) at ../../Source/WebCore/loader/ThreadableLoader.cpp:69 #13 0x00007faf72f84297 in WebCore::XMLHttpRequest::createRequest (this=0x1ff6cd0, ec=@0x7fff7a9d670c) at ../../Source/WebCore/xml/XMLHttpRequest.cpp:671 #14 0x00007faf72f837cc in WebCore::XMLHttpRequest::send (this=0x1ff6cd0, body=..., ec=@0x7fff7a9d670c) at ../../Source/WebCore/xml/XMLHttpRequest.cpp:543 #15 0x00007faf7262e95f in WebCore::JSXMLHttpRequest::send (this=0x7faf74e09540, exec=0x7faf65110080) at ../../Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp:132 #16 0x00007faf731891ac in WebCore::jsXMLHttpRequestPrototypeFunctionSend (exec=0x7faf65110080) at DerivedSources/WebCore/JSXMLHttpRequest.cpp:485 #17 0x00007faf200001b8 in ?? () #18 0x00007fff7a9d6840 in ?? () #19 0x00007faf200170b4 in ?? () #20 0x00007fff7a9d67c0 in ?? () #21 0x00007faf74e09540 in ?? () #22 0x0000000001fddf80 in ?? () #23 0x00007faf74e031c0 in ?? () #24 0x00007fff7a9d67f0 in ?? () #25 0x00007faf725ee1ad in JSC::Register::Register (this=0x7faf72b0534a) at ../../Source/JavaScriptCore/interpreter/Register.h:106 #26 0x00007faf73311a7f in JSC::JITCode::execute (this=0x1fdb5f8, registerFile=0x1608408, callFrame=0x7faf65110038, globalData=0x1603f00) at ../../Source/JavaScriptCore/jit/JITCode.h:77 #27 0x00007faf7330e533 in JSC::Interpreter::execute (this=0x16083f0, program=0x1fdb5e0, callFrame=0x1ffcb28, scopeChain=0x203a0c0, thisObj=0x7faf74e00240) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:781 #28 0x00007faf733a79ff in JSC::evaluate (exec=0x1ffcb28, scopeChain=..., source=..., thisValue=...) at ../../Source/JavaScriptCore/runtime/Completion.cpp:62 #29 0x00007faf7260fc97 in WebCore::JSMainThreadExecState::evaluate (exec=0x1ffcb28, chain=..., source=..., thisValue=...) at ../../Source/WebCore/bindings/js/JSMainThreadExecState.h:54 #30 0x00007faf72636b86 in WebCore::ScriptController::evaluateInWorld (this=0xfb68e8, sourceCode=..., world=0x1608600) at ../../Source/WebCore/bindings/js/ScriptController.cpp:142 #31 0x00007faf72636d46 in WebCore::ScriptController::evaluate (this=0xfb68e8, sourceCode=...) at ../../Source/WebCore/bindings/js/ScriptController.cpp:165 #32 0x00007faf726640b1 in WebCore::ScriptController::executeScript (this=0xfb68e8, sourceCode=...) at ../../Source/WebCore/bindings/ScriptControllerBase.cpp:59 #33 0x00007faf72837545 in WebCore::ScriptElement::executeScript (this=0x1fdd7d0, sourceCode=...) at ../../Source/WebCore/dom/ScriptElement.cpp:216 #34 0x00007faf729ba01f in WebCore::HTMLScriptRunner::runScript (this=0x1fe1670, script=0x1fdd750, scriptStartPosition=...) at ../../Source/WebCore/html/parser/HTMLScriptRunner.cpp:317 #35 0x00007faf729b9472 in WebCore::HTMLScriptRunner::execute (this=0x1fe1670, scriptElement=..., scriptStartPosition=...) at ../../Source/WebCore/html/parser/HTMLScriptRunner.cpp:173 #36 0x00007faf729ad675 in WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder (this=0x2032370) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:200 #37 0x00007faf729ad9ff in WebCore::HTMLDocumentParser::pumpTokenizer (this=0x2032370, mode=WebCore::HTMLDocumentParser::AllowYield) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:250 #38 0x00007faf729ad4ca in WebCore::HTMLDocumentParser::pumpTokenizerIfPossible (this=0x2032370, mode=WebCore::HTMLDocumentParser::AllowYield) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:170 #39 0x00007faf729ade54 in WebCore::HTMLDocumentParser::append (this=0x2032370, source=...) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:331 #40 0x00007faf72793405 in WebCore::DecodedDataDocumentParser::appendBytes (this=0x2032370, writer=0x1f71d60, data=0x2051b90 "<html>\n<body>\n<p>Test that setRequestHeader cannot be used to alter security-sensitive headers.</p>\n<pre id=result>FAIL: script didn't run or raised an unexpected exception.</pre>\n<script>\n if (win"..., length=2393, shouldFlush=false) at ../../Source/WebCore/dom/DecodedDataDocumentParser.cpp:54 #41 0x00007faf72abc639 in WebCore::DocumentWriter::addData (this=0x1f71d60, str=0x2051b90 "<html>\n<body>\n<p>Test that setRequestHeader cannot be used to alter security-sensitive headers.</p>\n<pre id=result>FAIL: script didn't run or raised an unexpected exception.</pre>\n<script>\n if (win"..., len=2393, flush=false) at ../../Source/WebCore/loader/DocumentWriter.cpp:201 #42 0x00007faf72ab1bd7 in WebCore::DocumentLoader::commitData (this=0x1f71c60, bytes=0x2051b90 "<html>\n<body>\n<p>Test that setRequestHeader cannot be used to alter security-sensitive headers.</p>\n<pre id=result>FAIL: script didn't run or raised an unexpected exception.</pre>\n<script>\n if (win"..., length=2393) at ../../Source/WebCore/loader/DocumentLoader.cpp:316 #43 0x00007faf724b86fa in WebKit::FrameLoaderClient::committedLoad (this=0xfb4940, loader=0x1f71c60, data=0x2051b90 "<html>\n<body>\n<p>Test that setRequestHeader cannot be used to alter security-sensitive headers.</p>\n<pre id=result>FAIL: script didn't run or raised an unexpected exception.</pre>\n<script>\n if (win"..., length=2393) at ../../Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:318 #44 0x00007faf72ab1abf in WebCore::DocumentLoader::commitLoad (this=0x1f71c60, data=0x2051b90 "<html>\n<body>\n<p>Test that setRequestHeader cannot be used to alter security-sensitive headers.</p>\n<pre id=result>FAIL: script didn't run or raised an unexpected exception.</pre>\n<script>\n if (win"..., length=2393) at ../../Source/WebCore/loader/DocumentLoader.cpp:302 #45 0x00007faf72ab1c96 in WebCore::DocumentLoader::receivedData (this=0x1f71c60, data=0x2051b90 "<html>\n<body>\n<p>Test that setRequestHeader cannot be used to alter security-sensitive headers.</p>\n<pre id=result>FAIL: script didn't run or raised an unexpected exception.</pre>\n<script>\n if (win"..., length=2393) at ../../Source/WebCore/loader/DocumentLoader.cpp:328 #46 0x00007faf72af7e93 in WebCore::MainResourceLoader::addData (this=0x2044b90, data=0x2051b90 "<html>\n<body>\n<p>Test that setRequestHeader cannot be used to alter security-sensitive headers.</p>\n<pre id=result>FAIL: script didn't run or raised an unexpected exception.</pre>\n<script>\n if (win"..., length=2393, allAtOnce=false) at ../../Source/WebCore/loader/MainResourceLoader.cpp:158 #47 0x00007faf72b04abf in WebCore::ResourceLoader::didReceiveData (this=0x2044b90, data=0x2051b90 "<html>\n<body>\n<p>Test that setRequestHeader cannot be used to alter security-sensitive headers.</p>\n<pre id=result>FAIL: script didn't run or raised an unexpected exception.</pre>\n<script>\n if (win"..., length=2393, lengthReceived=2393, allAtOnce=false) at ../../Source/WebCore/loader/ResourceLoader.cpp:279 #48 0x00007faf72af909c in WebCore::MainResourceLoader::didReceiveData (this=0x2044b90, data=0x2051b90 "<html>\n<body>\n<p>Test that setRequestHeader cannot be used to alter security-sensitive headers.</p>\n<pre id=result>FAIL: script didn't run or raised an unexpected exception.</pre>\n<script>\n if (win"..., length=2393, lengthReceived=2393, allAtOnce=false) at ../../Source/WebCore/loader/MainResourceLoader.cpp:443 #49 0x00007faf72b053da in WebCore::ResourceLoader::didReceiveData (this=0x2044b90, data=0x2051b90 "<html>\n<body>\n<p>Test that setRequestHeader cannot be used to alter security-sensitive headers.</p>\n<pre id=result>FAIL: script didn't run or raised an unexpected exception.</pre>\n<script>\n if (win"..., length=2393, lengthReceived=2393) at ../../Source/WebCore/loader/ResourceLoader.cpp:430 #50 0x00007faf7247de17 in WebCore::readCallback (source=0x16f8b90, asyncResult=0x160e060, data=0x0) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:788 #51 0x00007faf701e1f65 in async_ready_callback_wrapper (source_object=0x16f8b90, res=0x160e060, user_data=0x0) at /tmp/buildd/glib2.0-2.27.91/./gio/ginputstream.c:470 #52 0x00007faf704e805d in read_async_done (stream=0x16f8b90) at soup-http-input-stream.c:723 #53 0x00007faf6ff4933e in g_closure_invoke (closure=0x2066280, return_value=0x0, n_param_values=2, param_values=0x1ef5aa0, invocation_hint=0x7fff7a9d7690) at /tmp/buildd/glib2.0-2.27.91/./gobject/gclosure.c:767 #54 0x00007faf6ff623b9 in signal_emit_unlocked_R (node=0xfb5980, detail=<value optimized out>, instance=<value optimized out>, emission_return=<value optimized out>, instance_and_params=<value optimized out>) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:3252 #55 0x00007faf6ff63b36 in g_signal_emit_valist (instance=0x199fec0, signal_id=<value optimized out>, detail=0, var_args=0x7fff7a9d7880) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:2983 #56 0x00007faf6ff64363 in g_signal_emit (instance=0x7fff7a9d4dd0, signal_id=0, detail=1850732032) at /tmp/buildd/glib2.0-2.27.91/./gobject/gsignal.c:3040 #57 0x00007faf704ee046 in io_handle_sniffing (msg=0x199fec0, done_reading=<value optimized out>) at soup-message-io.c:248 #58 0x00007faf704eeb3b in read_body_chunk (msg=<value optimized out>) at soup-message-io.c:481 #59 0x00007faf704ef2e8 in io_read (sock=0x15f73a0, msg=0x199fec0) at soup-message-io.c:958 #60 0x00007faf704efcb4 in io_unpause_internal (msg=0x199fec0) at soup-message-io.c:1207 #61 0x00007faf6f688362 in g_main_dispatch (context=0xf381e0) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:2440 #62 g_main_context_dispatch (context=0xf381e0) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3013 #63 0x00007faf6f68ca28 in g_main_context_iterate (context=0xf381e0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3091 #64 0x00007faf6f68cf35 in g_main_loop_run (loop=0x1fca2e0) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3299 #65 0x00007faf715c1657 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #66 0x000000000041df63 in runTest (testPathOrURL=...) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:667 #67 0x000000000041d633 in runTestingServerLoop () at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:481 #68 0x000000000041f6da in main (argc=2, argv=0x7fff7a9da708) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1131 The issue seems to be that the code is modifying a HashMap and then trying to continue to use the old iterator.
Attachments
Patch (2.30 KB, patch)
2011-02-16 15:24 PST, Martin Robinson
no flags
Martin Robinson
Comment 1 2011-02-16 15:24:48 PST
Xan Lopez
Comment 2 2011-02-16 15:35:09 PST
Comment on attachment 82708 [details] Patch Winner of best cleanup of the week.
Martin Robinson
Comment 3 2011-02-16 15:57:34 PST
Comment on attachment 82708 [details] Patch Clearing flags on attachment: 82708 Committed r78743: <http://trac.webkit.org/changeset/78743>
Martin Robinson
Comment 4 2011-02-16 15:57:37 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.