Critical in g_socket_client_connected_callback
Similar to #1646 (closed), but a different stacktrace. Another likely regression from Happy Eyeballs (CC: @pgriffis). This time I have a reproducer. Open spoof.html from epiphany#532 (closed) in Epiphany (use Ctrl+O to get an Open dialog) and then quit the browser. It fails:
#0 0x00007fbafa9b7cd7 in _g_log_abort (breakpoint=breakpoint@entry=1)
at /home/mcatanzaro/Projects/glib/glib/gmessages.c:554
debugger_present = 1
#1 0x00007fbafa9b8daa in g_logv (log_domain=0x7fbafac0a05a "GLib-GIO", log_level=G_LOG_LEVEL_CRITICAL,
format=<optimized out>, args=args@entry=0x7fff12e99cf8)
at /home/mcatanzaro/Projects/glib/glib/gmessages.c:1371
domain = 0x0
data = 0x0
depth = 1
log_func = 0x7fbafa9b8b14 <g_log_default_handler>
domain_fatal_mask = <optimized out>
masquerade_fatal = <optimized out>
test_level = 10
was_fatal = 0
was_recursion = 0
buffer = <optimized out>
msg = 0x4a7df0 "g_task_return_error_if_cancelled: assertion 'G_IS_TASK (task)' failed"
msg_alloc = 0x4a7df0 "g_task_return_error_if_cancelled: assertion 'G_IS_TASK (task)' failed"
i = 3
size = <optimized out>
#2 0x00007fbafa9b8f88 in g_log (log_domain=log_domain@entry=0x7fbafac0a05a "GLib-GIO",
log_level=log_level@entry=G_LOG_LEVEL_CRITICAL,
format=format@entry=0x7fbafaa07bd4 "%s: assertion '%s' failed")
at /home/mcatanzaro/Projects/glib/glib/gmessages.c:1413
args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fff12e99dd0,
reg_save_area = 0x7fff12e99d10}}
#3 0x00007fbafa9b951a in g_return_if_fail_warning (
log_domain=log_domain@entry=0x7fbafac0a05a "GLib-GIO",
pretty_function=pretty_function@entry=0x7fbafac1b500 <__func__.15542> "g_task_return_error_if_cancelled", expression=expression@entry=0x7fbafac1b47e "G_IS_TASK (task)")
at /home/mcatanzaro/Projects/glib/glib/gmessages.c:2767
No locals.
#4 0x00007fbafab78c1c in g_task_return_error_if_cancelled (task=0x4b5770)
at /home/mcatanzaro/Projects/glib/gio/gtask.c:1898
error = 0x0
__func__ = "g_task_return_error_if_cancelled"
#5 0x00007fbafab6d77b in g_socket_client_connected_callback (source=0x445d10, result=0x42cac0,
user_data=user_data@entry=0x7904b0) at /home/mcatanzaro/Projects/glib/gio/gsocketclient.c:1553
attempt = 0x7904b0
data = 0xa29000
l = <optimized out>
error = 0x0
proxy = <optimized out>
protocol = <optimized out>
#6 0x00007fbafab77418 in g_task_return_now (task=task@entry=0x42cac0)
at /home/mcatanzaro/Projects/glib/gio/gtask.c:1202
No locals.
#7 0x00007fbafab78127 in g_task_return (task=task@entry=0x42cac0,
type=type@entry=G_TASK_RETURN_SUCCESS) at /home/mcatanzaro/Projects/glib/gio/gtask.c:1263
source = 0x86a7a0
#8 0x00007fbafab787f0 in g_task_return_boolean (task=task@entry=0x42cac0, result=result@entry=1)
at /home/mcatanzaro/Projects/glib/gio/gtask.c:1779
__func__ = "g_task_return_boolean"
#9 0x00007fbafab6f2e3 in g_socket_connection_connect_callback (socket=<optimized out>,
condition=<optimized out>, user_data=0x42cac0)
at /home/mcatanzaro/Projects/glib/gio/gsocketconnection.c:237
task = 0x42cac0
connection = <optimized out>
error = 0x0
#10 0x00007fbafab67ff0 in socket_source_dispatch (source=0x86a7a0,
callback=0x7fbafab6f2a8 <g_socket_connection_connect_callback>, user_data=0x42cac0)
at /home/mcatanzaro/Projects/glib/gio/gsocket.c:3865
func = 0x7fbafab6f2a8 <g_socket_connection_connect_callback>
socket_source = 0x86a7a0
socket = 0x42ffa0
timeout = -1
events = 0
ret = <optimized out>
#11 0x00007fbafa9b0ade in g_main_dispatch (context=context@entry=0x425a50)
at /home/mcatanzaro/Projects/glib/glib/gmain.c:3189
dispatch = 0x7fbafab67f8b <socket_source_dispatch>
prev_source = 0x0
was_in_call = 0
user_data = 0x42cac0
callback = 0x7fbafab6f2a8 <g_socket_connection_connect_callback>
cb_funcs = 0x7fbafaa82920 <g_source_callback_funcs>
cb_data = 0x7c99d0
need_destroy = <optimized out>
source = 0x86a7a0
current = 0x42a180
i = 3
__func__ = "g_main_dispatch"
#12 0x00007fbafa9b1f4e in g_main_context_dispatch (context=context@entry=0x425a50)
at /home/mcatanzaro/Projects/glib/glib/gmain.c:3854
No locals.
#13 0x00007fbafa9b20aa in g_main_context_iterate (context=0x425a50, block=block@entry=1,
dispatch=dispatch@entry=1, self=self@entry=0x432f30)
at /home/mcatanzaro/Projects/glib/glib/gmain.c:3927
max_priority = 0
timeout = 0
some_ready = 1
nfds = <optimized out>
allocated_nfds = 4
fds = 0x5d7490
#14 0x00007fbafa9b2431 in g_main_loop_run (loop=loop@entry=0x425b40)
at /home/mcatanzaro/Projects/glib/glib/gmain.c:4123
self = 0x432f30
__func__ = "g_main_loop_run"
#15 0x00007fbafe4a1650 in WTF::RunLoop::run ()
at /home/mcatanzaro/Projects/WebKit/Source/WTF/wtf/glib/RunLoopGLib.cpp:96
runLoop = @0x7fbaf7ffb000: {<WTF::FunctionDispatcher> = {<WTF::ThreadSafeRefCounted<WTF::FunctionDispatcher, (WTF::DestructionThread)0>> = {<WTF::ThreadSafeRefCountedBase> = {
m_refCount = {<std::__atomic_base<unsigned int>> = {static _S_alignment = 4,
_M_i = 6}, <No data fields>}}, <No data fields>},
_vptr.FunctionDispatcher = 0x7fbafe743d40 <vtable for WTF::RunLoop+16>},
m_functionQueueLock = {static isHeldBit = 1 '\001', static hasParkedBit = 2 '\002', m_byte = {
value = {<std::__atomic_base<unsigned char>> = {static _S_alignment = 1,
_M_i = 0 '\000'}, <No data fields>}}}, m_functionQueue = {m_start = 1, m_end = 1,
m_buffer = {<WTF::VectorBufferBase<WTF::Function<void()> >> = {m_buffer = 0x7fbaf7fef100,
m_capacity = 16, m_size = 0}, <No data fields>}}, m_mainContext = {m_ptr = 0x425a50},
m_mainLoops = {<WTF::VectorBuffer<WTF::GRefPtr<_GMainLoop>, 0>> = {<WTF::VectorBufferBase<WTF::GRefPtr<_GMainLoop> >> = {m_buffer = 0x7fbaf7ffd180, m_capacity = 16,
m_size = 1}, <No data fields>}, <No data fields>}, m_source = {m_ptr = 0x425b60}}
mainContext = 0x425a50
innermostLoop = 0x425b40
nestedMainLoop = <optimized out>
#16 0x00007fbaff107239 in WebKit::ChildProcessMain<WebKit::NetworkProcess, WebKit::NetworkProcessMain> (
argc=<optimized out>, argv=0x7fff12e9a198)
at /home/mcatanzaro/Projects/WebKit/Source/WebKit/Shared/unix/ChildProcessMain.h:41
childMain = {<WebKit::ChildProcessMainBase> = {
_vptr.ChildProcessMainBase = 0x7fbb011b19d0 <vtable for WebKit::NetworkProcessMain+16>,
m_parameters = {uiProcessName = {static MaxLength = 2147483647, m_impl = {
static isRefPtr = <optimized out>, m_ptr = 0x0}}, clientIdentifier = {
static MaxLength = 2147483647, m_impl = {static isRefPtr = <optimized out>,
m_ptr = 0x0}},
processIdentifier = {<WTF::constexpr_Optional_base<WTF::ObjectIdentifier<WebCore::ProcessIdentifierType> >> = {init_ = true, storage_ = {dummy_ = 2 '\002', value_ = {
m_identifier = 2}}}, <No data fields>}, connectionIdentifier = 27,
extraInitializationData = {m_impl = {static m_maxLoad = <optimized out>,
static m_minLoad = <optimized out>, m_table = 0x0, m_tableSize = 0,
m_tableSizeMask = 0, m_keyCount = 0, m_deletedCount = 0}},
processType = (unknown: 104)}}, <No data fields>}
#17 0x00007fbafa131413 in __libc_start_main (main=0x400b20 <main(int, char**)>, argc=3,
argv=0x7fff12e9a198, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7fff12e9a188) at ../csu/libc-start.c:308
self = <optimized out>
result = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 2905554338986319827, 4197248, 140733510689168,
0, 0, -2905737559652966445, -2943261919549464621}, mask_was_saved = 0}}, priv = {pad = {
0x0, 0x0, 0x7fff12e9a1b8, 0x7fbb013c4150}, data = {prev = 0x0, cleanup = 0x0,
canceltype = 317301176}}}
not_first_call = <optimized out>
#18 0x0000000000400bae in _start ()
No symbol table info available.