RESOLVED FIXED 38653
[gtk] critical warning in soup_message_set_first_party() when cancelling a navigation
https://bugs.webkit.org/show_bug.cgi?id=38653
Summary [gtk] critical warning in soup_message_set_first_party() when cancelling a na...
Jonathon Jongsma (jonner)
Reported 2010-05-06 09:58:30 PDT
Steps to reproduce: - connect to "WebKitWebView:navigation-policy-decision-requested" - in callback, call webkit_web_policy_decision_ignore(policy_decision) and return TRUE notice critical warning on terminal: (test-auth:7640): libsoup-CRITICAL **: soup_message_set_first_party: assertion `SOUP_IS_MESSAGE (msg)' failed restartedCallback (msg=0xc3ac6(test-auth:7640): libsoup-CRITICAL **: soup_message_set_first_party: assertion `SOUP_IS_MESSAGE (msg)' failed backtrace follows: #0 restartedCallback (msg=0xc3ac60, data=<value optimized out>) at ../WebCore/platform/network/soup/ResourceHandleSoup.cpp:203 handle = <value optimized out> request = {<WebCore::ResourceRequestBase> = {<WTF::FastAllocBase> = {<No data fields>}, m_url = {m_string = { m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffe7932e80}}, m_isValid = true, m_protocolInHTTPFamily = true, m_schemeEnd = 4, m_userStart = 7, m_userEnd = 7, m_passwordEnd = 7, m_hostEnd = 23, m_portEnd = 23, m_pathAfterLastSlash = 32, m_pathEnd = 50, m_queryEnd = 94, m_fragmentEnd = 94}, m_cachePolicy = WebCore::ReloadIgnoringCacheData, m_timeoutInterval = 2147483647, m_firstPartyForCookies = {m_string = { m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffe7932f40}}, m_isValid = true, m_protocolInHTTPFamily = true, m_schemeEnd = 4, m_userStart = 7, m_userEnd = 7, m_passwordEnd = 7, m_hostEnd = 23, m_portEnd = 23, m_pathAfterLastSlash = 32, m_pathEnd = 50, m_queryEnd = 94, m_fragmentEnd = 94}, m_httpMethod = {m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffe7932e60}}, m_httpHeaderFields = {<WTF::HashMap<WebCore::AtomicString, WebCore::String, WebCore::CaseFoldingHash, WTF::HashTraits<WebCore::AtomicString>, WTF::HashTraits<WebCore::String> >> = {<WTF::FastAllocBase> = {<No data fields>}, m_impl = {static m_minTableSize = 64, static m_maxLoad = 2, static m_minLoad = 6, m_table = 0x7fffd7caf400, m_tableSize = 64, m_tableSizeMask = 63, m_keyCount = 5, m_deletedCount = 0}}, <No data fields>}, m_responseContentDispositionEncodingFallbackArray = {<WTF::FastAllocBase> = {<No data fields>}, m_size = 3, m_buffer = {<WTF::VectorBufferBase<WebCore::String>> = {<WTFNoncopyable::Noncopyable> = {<WTF::FastAllocBase> = {<No data fields>}, <No data fields>}, m_buffer = 0x7fffe787c980, m_capacity = 16}, <No data fields>}}, m_httpBody = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffe79b1480}, m_allowCookies = true, m_resourceRequestUpdated = true, m_platformRequestUpdated = false, m_reportUploadProgress = false, m_targetType = WebCore::ResourceRequestBase::TargetIsSubresource}, m_soupFlags = 0} d = 0x7fffe7a15800 uri = <value optimized out> location = {m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffe790e9a0}} newURL = {m_string = {m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffe790e9a0}}, m_isValid = true, m_protocolInHTTPFamily = true, m_schemeEnd = 4, m_userStart = 7, m_userEnd = 7, m_passwordEnd = 7, m_hostEnd = 23, m_portEnd = 23, m_pathAfterLastSlash = 32, m_pathEnd = 50, m_queryEnd = 94, m_fragmentEnd = 94} response = {<WebCore::ResourceResponseBase> = {<WTF::FastAllocBase> = {<No data fields>}, m_url = {m_string = { m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffe7948460}}, m_isValid = true, m_protocolInHTTPFamily = true, m_schemeEnd = 4, m_userStart = 7, m_userEnd = 7, m_passwordEnd = 7, m_hostEnd = 23, m_portEnd = 23, m_pathAfterLastSlash = 32, m_pathEnd = 50, m_queryEnd = 94, m_fragmentEnd = 94}, m_mimeType = {m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffe74e01f8}}, m_expectedContentLength = 0, m_textEncodingName = {m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffd7c38810}}, m_suggestedFilename = { m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x0}}, m_httpStatusCode = 302, m_httpStatusText = { m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffd7c38870}}, m_httpHeaderFields = {<WTF::HashMap<WebCore::AtomicString, WebCore::String, WebCore::CaseFoldingHash, WTF::HashTraits<WebCore::AtomicString>, WTF::HashTraits<WebCore::String> >> = {<WTF::FastAllocBase> = {<No data fields>}, m_impl = {static m_minTableSize = 64, static m_maxLoad = 2, static m_minLoad = 6, m_table = 0x7fffd7caf800, m_tableSize = 64, m_tableSizeMask = 63, m_keyCount = 8, m_deletedCount = 0}}, <No data fields>}, m_lastModifiedDate = 0, m_isNull = false, m_haveParsedCacheControlHeader = false, m_haveParsedAgeHeader = false, m_haveParsedDateHeader = false, m_haveParsedExpiresHeader = false, m_haveParsedLastModifiedHeader = false, m_cacheControlContainsNoCache = false, m_cacheControlContainsNoStore = false, m_cacheControlContainsMustRevalidate = false, m_cacheControlMaxAge = 0, m_age = 0, m_date = 0, m_expires = 0, m_lastModified = 0}, m_soupFlags = 0} firstPartyString = {m_impl = {<WTF::FastAllocBase> = {<No data fields>}, m_ptr = 0x7fffe7932f40}} #1 0x00007ffff401747e in IA__g_closure_invoke (closure=0xb1d730, return_value=0x0, n_param_values=1, param_values=0x6e7b60, invocation_hint=0x7fffffffd4e0) at /tmp/buildd/glib2.0-2.24.1/gobject/gclosure.c:767 marshal = 0 marshal_data = 0x1 __PRETTY_FUNCTION__ = "IA__g_closure_invoke" #2 0x00007ffff402d3f7 in signal_emit_unlocked_R (node=0x6f6ac0, 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.24.1/gobject/gsignal.c:3248 tmp = <value optimized out> handler = 0x6e88c0 accumulator = 0x0 emission = {next = 0x7fffffffd8e0, instance = 0xc3ac60, ihint = {signal_id = 248, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4} class_closure = 0x6f6a70 handler_list = 0x6e88c0 return_accu = <value optimized out> accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} signal_id = 248 max_sequential_handler_number = <value optimized out> return_value_altered = 1 #3 0x00007ffff402ea76 in IA__g_signal_emit_valist (instance=0xc3ac60, signal_id=<value optimized out>, detail=0, var_args=0x7fffffffd6d0) at /tmp/buildd/glib2.0-2.24.1/gobject/gsignal.c:2981 signal_return_type = 4 param_values = <value optimized out> node = 0x6f6ac0 i = <value optimized out> n_params = <value optimized out> __PRETTY_FUNCTION__ = "IA__g_signal_emit_valist" #4 0x00007ffff402efc3 in IA__g_signal_emit (instance=0x2, signal_id=0, detail=4084310656) at /tmp/buildd/glib2.0-2.24.1/gobject/gsignal.c:3038 var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd7b0, reg_save_area = 0x7fffffffd6f0}} #5 0x00007ffff5c591f8 in soup_message_io_finished (msg=0xc3ac60) at soup-message-io.c:175 No locals. #6 0x00007ffff401747e in IA__g_closure_invoke (closure=0xb23690, return_value=0x0, n_param_values=1, param_values=0x6d4d20, invocation_hint=0x7fffffffd8f0) at /tmp/buildd/glib2.0-2.24.1/gobject/gclosure.c:767 marshal = 0 marshal_data = 0x1 __PRETTY_FUNCTION__ = "IA__g_closure_invoke" #7 0x00007ffff402d3f7 in signal_emit_unlocked_R (node=0xaf7400, 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.24.1/gobject/gsignal.c:3248 tmp = <value optimized out> handler = 0xc31670 accumulator = 0x0 emission = {next = 0x0, instance = 0xaf8180, ihint = {signal_id = 253, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4} class_closure = 0xaf7200 handler_list = 0xc31670 return_accu = <value optimized out> accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} signal_id = 253 max_sequential_handler_number = <value optimized out> return_value_altered = 0 #8 0x00007ffff402ea76 in IA__g_signal_emit_valist (instance=0xaf8180, signal_id=<value optimized out>, detail=0, var_args=0x7fffffffdae0) at /tmp/buildd/glib2.0-2.24.1/gobject/gsignal.c:2981 signal_return_type = 4 param_values = <value optimized out> node = 0xaf7400 i = <value optimized out> n_params = <value optimized out> __PRETTY_FUNCTION__ = "IA__g_signal_emit_valist" #9 0x00007ffff402efc3 in IA__g_signal_emit (instance=0x2, signal_id=0, detail=4084310656) at /tmp/buildd/glib2.0-2.24.1/gobject/gsignal.c:3038 var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffdbc0, reg_save_area = 0x7fffffffdb00}} #10 0x00007ffff5c655b1 in socket_read_watch (chan=<value optimized out>, cond=0, user_data=<value optimized out>) at soup-socket.c:1245 sock = 0xaf8180 #11 0x00007ffff375d6c2 in g_main_dispatch (context=0x63eb50) at /tmp/buildd/glib2.0-2.24.1/glib/gmain.c:1960 dispatch = 0x7ffff379f6d0 <g_io_unix_dispatch> user_data = 0xaf8180 callback = 0x7ffff5c65550 <socket_read_watch> cb_funcs = 0x7ffff39f9f50 cb_data = 0xb0b750 current_source_link = {data = 0xb43de0, next = 0x0} source = 0xb43de0 current = 0x685580 i = 0 #12 IA__g_main_context_dispatch (context=0x63eb50) at /tmp/buildd/glib2.0-2.24.1/glib/gmain.c:2513 No locals. #13 0x00007ffff3761538 in g_main_context_iterate (context=0x63eb50, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at /tmp/buildd/glib2.0-2.24.1/glib/gmain.c:2591 max_priority = 2147483647 timeout = 500 some_ready = 1 nfds = 7 allocated_nfds = -210312448 fds = <value optimized out> __PRETTY_FUNCTION__ = "g_main_context_iterate" #14 0x00007ffff3761a45 in IA__g_main_loop_run (loop=0xaf6660) at /tmp/buildd/glib2.0-2.24.1/glib/gmain.c:2799 self = 0x602f20 __PRETTY_FUNCTION__ = "IA__g_main_loop_run" #15 0x00007ffff5fba647 in IA__gtk_main () at /tmp/buildd/gtk+2.0-2.20.1/gtk/gtkmain.c:1219 tmp_list = 0x0 functions = 0x0 init = 0x7fffffffddf0 loop = <value optimized out> #16 0x0000000000401001 in main (argc=1, argv=0x7fffffffded8) at test-auth.c:54 proxy = 0x663160 url = 0x690e60 "http://facebook.com/login.php/?api%5Fkey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&next=http%3A%2F%2Fwww%2Efacebook%2Ecom%2Fconnect%2Flogin%5Fsuccess%2Ehtml&req%5Fperms=read%5Fstream%2Cpublish%5Fstream&v=1%2E0" win = 0x63b3b0 webview = 0x69e000
Attachments
Xan Lopez
Comment 1 2010-05-11 10:07:55 PDT
I think to fully reproduce you must be using a webpage that does a redirect, since the warning occurs in the redirect callback inside webkit. In any case the problem is that we are not checking if the request was cancelled after checking with the client about the new status, I'll do a patch.
Xan Lopez
Comment 2 2010-05-11 10:39:11 PDT
Should be fixed in r59157, thanks.
Note You need to log in before you can comment on or make changes to this bug.