Bug 38653 - [gtk] critical warning in soup_message_set_first_party() when cancelling a navigation
Summary: [gtk] critical warning in soup_message_set_first_party() when cancelling a na...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC OS X 10.5
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-06 09:58 PDT by Jonathon Jongsma (jonner)
Modified: 2010-05-11 10:39 PDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jonathon Jongsma (jonner) 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
Comment 1 Xan Lopez 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.
Comment 2 Xan Lopez 2010-05-11 10:39:11 PDT
Should be fixed in r59157, thanks.