Crash under g_object_unref()
I get this crash quite often with glib2-2.76.4. I think it's different from #3061 (closed), because this one happens (consistently so far) in g_object_unref() and it's not a rare thing, I see it several times a day. My backtrace:
#5 0x00007f30da65fb70 in <signal handler called> () at /lib64/libc.so.6
#6 0x00007f30db469bc5 in g_datalist_id_dup_data (datalist=0x7f30bc107510, key_id=61, dup_func=0x0, user_data=0x0) at ../glib/gdataset.c:977
val = 0x0
retval = 0x0
d = 0x6363636363636360
data = 0x6363636363636368
data_end = 0x100000000
#7 0x00007f30db469b5a in g_datalist_id_get_data (datalist=0x7f30bc107510, key_id=61) at ../glib/gdataset.c:916
#8 0x00007f30db3e0a44 in toggle_refs_notify (object=0x7f30bc107500, is_last_ref=1) at ../gobject/gobject.c:3768
tstack = {object = 0x7f30c73fc7b0, n_toggle_refs = 3678561000, toggle_refs = {{notify = 0x50, data = 0x7f30bc107510}}}
tstackptr = 0x7f30bc107510
__func__ = "toggle_refs_notify"
#9 0x00007f30db3e1159 in g_object_unref (_object=0x7f30bc107500) at ../gobject/gobject.c:4005
object = 0x7f30bc107500
old_ref = 2
__func__ = "g_object_unref"
#10 0x00007f30db17674e in _g_dbus_worker_queue_or_deliver_received_message (worker=0x1b82690, message=0x0) at ../gio/gdbusprivate.c:521
_pp = 0x7f30c73fc820
_ptr = 0x7f30bc107500
#11 0x00007f30db177124 in _g_dbus_worker_do_read_cb (input_stream=0x1b7f6a0 [GSocket], res=0x7f30bc111b00, user_data=0x1b82690) at ../gio/gdbusprivate.c:805
message = 0x0
worker = 0x1b82690
error = 0x0
bytes_read = 268
#12 0x00007f30db0dde79 in g_task_return_now (task=0x7f30bc111b00 [GTask]) at ../gio/gtask.c:1309
#13 0x00007f30db0ddece in complete_in_idle_cb (task=0x7f30bc111b00) at ../gio/gtask.c:1323
#14 0x00007f30db496c40 in g_idle_dispatch (source=0x7f30bc0ff890, callback=0x7f30db0ddeb6 <complete_in_idle_cb>, user_data=0x7f30bc111b00) at ../glib/gmain.c:6176
idle_source = 0x7f30bc0ff890
again = 2
#15 0x00007f30db493716 in g_main_dispatch (context=0x1b82b50) at ../glib/gmain.c:3473
dispatch = 0x7f30db496bbd <g_idle_dispatch>
prev_source = 0x0
begin_time_nsec = 1984694792915
was_in_call = 0
user_data = 0x7f30bc111b00
callback = 0x7f30db0ddeb6 <complete_in_idle_cb>
cb_funcs = 0x7f30db5a3400 <g_source_callback_funcs>
cb_data = 0x7f30bc03a8a0
need_destroy = 0
source = 0x7f30bc0ff890
current = 0x7f30bc000bf0
i = 0
__func__ = "g_main_dispatch"
#16 0x00007f30db494924 in g_main_context_dispatch (context=0x1b82b50) at ../glib/gmain.c:4213
#17 0x00007f30db494b1c in g_main_context_iterate (context=0x1b82b50, block=1, dispatch=1, self=0x1b7e340) at ../glib/gmain.c:4289
max_priority = 0
timeout = 0
some_ready = 1
nfds = 2
allocated_nfds = 3
fds = 0x7f30bc000b90
begin_time_nsec = 1984694789103
#18 0x00007f30db49502d in g_main_loop_run (loop=0x1b82c80) at ../glib/gmain.c:4492
self = 0x1b7e340
__func__ = "g_main_loop_run"
#19 0x00007f30db1762e8 in gdbus_shared_thread_func (user_data=0x1b82b20) at ../gio/gdbusprivate.c:284
data = 0x1b82b20
#20 0x00007f30db4d3322 in g_thread_proxy (data=0x1b7e340) at ../glib/gthread.c:831
thread = 0x1b7e340
__func__ = "g_thread_proxy"
#21 0x00007f30da6ae907 in start_thread () at /lib64/libc.so.6
#22 0x00007f30da734870 in clone3 () at /lib64/libc.so.6