Crash in gtk_application_set_screensaver_active()
Moving this from a downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=2188823
According to the below backtrace, the crash happens on an application quit (dispose). It's on Fedora 38, thus some latest gtk3, I guess gtk3-3.24.37-1.fc38.
backtrace
Core was generated by `evolution --quit'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 gtk_application_set_screensaver_active (active=0, application=0x2) at ../gtk/gtkapplication.c:1671
Downloading source file /usr/src/debug/gtk3-3.24.37-1.fc38.x86_64/redhat-linux-build/../gtk/gtkapplication.c...
1671 if (priv->screensaver_active != active)
[Current thread is 1 (Thread 0x7fa450d62bc0 (LWP 7447))]
Thread 1 (Thread 0x7fa450d62bc0 (LWP 7447)):
#0 gtk_application_set_screensaver_active (active=0, application=0x2) at ../gtk/gtkapplication.c:1671
priv = 0xffffffffffffff12
priv = <optimized out>
#1 ss_get_active_cb (source=<optimized out>, result=<optimized out>, data=0x559b73036240) at ../gtk/gtkapplication-dbus.c:251
dbus = 0x559b73036240
proxy = <optimized out>
error = 0x0
ret = 0x7fa42c00bcd0
active = 0
__func__ = "ss_get_active_cb"
#2 0x00007fa45cc0f67c in g_task_return_now (task=0x559b72f75b60) at ../gio/gtask.c:1309
No locals.
#3 0x00007fa45cc14b43 in g_task_return (type=<optimized out>, task=0x559b72f75b60) at ../gio/gtask.c:1378
source = 0x7fa42c007630
source = <optimized out>
source_name = <optimized out>
#4 g_task_return (task=0x559b72f75b60, type=<optimized out>) at ../gio/gtask.c:1335
source = <optimized out>
source_name = <optimized out>
#5 0x00007fa45cc7f5db in reply_cb (connection=<optimized out>, res=<optimized out>, user_data=0x559b72f75b60) at ../gio/gdbusproxy.c:2571
data = <optimized out>
task = 0x559b72f75b60
value = 0x7fa42c00bcd0
error = 0x0
fd_list = 0x0
#6 0x00007fa45cc0f67c in g_task_return_now (task=0x559b72f75c50) at ../gio/gtask.c:1309
No locals.
#7 0x00007fa45cc14b43 in g_task_return (type=<optimized out>, task=0x559b72f75c50) at ../gio/gtask.c:1378
source = 0x7fa42c007630
source = <optimized out>
source_name = <optimized out>
#8 g_task_return (task=0x559b72f75c50, type=<optimized out>) at ../gio/gtask.c:1335
source = <optimized out>
source_name = <optimized out>
#9 0x00007fa45cc75b72 in g_dbus_connection_call_done (source=<optimized out>, result=<optimized out>, user_data=0x559b72f75c50) at ../gio/gdbusconnection.c:5885
connection = <optimized out>
task = 0x559b72f75c50
state = 0x559b73030680
error = 0x0
reply = 0x7fa42c006550
value = <optimized out>
#10 0x00007fa45cc0f67c in g_task_return_now (task=0x559b72f74ec0) at ../gio/gtask.c:1309
No locals.
#11 0x00007fa45cc0f6b5 in complete_in_idle_cb (task=task@entry=0x559b72f74ec0) at ../gio/gtask.c:1323
No locals.
#12 0x00007fa45d7e53cd in g_idle_dispatch (source=0x7fa42c007630, callback=0x7fa45cc0f6a0 <complete_in_idle_cb>, user_data=0x559b72f74ec0) at ../glib/gmain.c:6163
idle_source = 0x7fa42c007630
again = <optimized out>
#13 0x00007fa45d7def58 in g_main_dispatch (context=0x559b72dc3630) at ../glib/gmain.c:3460
dispatch = 0x7fa45d7e53a0 <g_idle_dispatch>
prev_source = 0x0
begin_time_nsec = 2023252789572
was_in_call = 0
user_data = 0x559b72f74ec0
callback = 0x7fa45cc0f6a0 <complete_in_idle_cb>
cb_funcs = 0x7fa45d8cb280 <g_source_callback_funcs>
cb_data = 0x7fa42c00ae00
need_destroy = <optimized out>
source = 0x7fa42c007630
current = 0x559b72dc3860
i = 5
current = <optimized out>
i = <optimized out>
__func__ = <optimized out>
source = <optimized out>
_g_boolean_var_163 = <optimized out>
was_in_call = <optimized out>
user_data = <optimized out>
callback = <optimized out>
cb_funcs = <optimized out>
cb_data = <optimized out>
need_destroy = <optimized out>
dispatch = <optimized out>
prev_source = <optimized out>
begin_time_nsec = <optimized out>
_g_boolean_var_164 = <optimized out>
#14 g_main_context_dispatch (context=0x559b72dc3630) at ../glib/gmain.c:4200
No locals.
#15 0x00007fa45d83ecd8 in g_main_context_iterate.isra.0 (context=0x559b72dc3630, block=0, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
max_priority = 0
timeout = 0
some_ready = 1
nfds = 4
allocated_nfds = <optimized out>
fds = <optimized out>
begin_time_nsec = 2023252340230
#16 0x00007fa45d7e0233 in g_main_context_iteration (context=0x559b72dc3630, may_block=may_block@entry=0) at ../glib/gmain.c:4343
retval = <optimized out>
#17 0x00007fa45cd9f7a7 in source_registry_dispose (object=0x559b72f74d30) at /usr/src/debug/evolution-data-server-3.48.0-1.fc38.x86_64/src/libedataserver/e-source-registry.c:1358
priv = 0x559b72f74cb0
#18 0x00007fa45cb21af4 in g_object_unref (_object=0x559b72f74d30) at ../gobject/gobject.c:3891
_pp = <optimized out>
gaig_temp = <optimized out>
gaig_temp = <optimized out>
weak_locations = <optimized out>
nqueue = 0x559b72f6c8e0
_ptr = <optimized out>
object = 0x559b72f74d30
old_ref = <optimized out>
retry_atomic_decrement1 = <optimized out>
__func__ = "g_object_unref"
#19 0x00007fa4590d44e7 in client_cache_dispose (object=0x559b72f6c4f0) at /usr/src/debug/evolution-3.48.0-1.fc38.x86_64/src/e-util/e-client-cache.c:763
_pp = {in = 0x559b72f6c4c0 "", out = 0x559b72f6c4c0}
_p = <optimized out>
_destroy = <optimized out>
priv = 0x559b72f6c4c0
#20 0x00007fa45cb21af4 in g_object_unref (_object=0x559b72f6c4f0) at ../gobject/gobject.c:3891
_pp = <optimized out>
gaig_temp = <optimized out>
gaig_temp = <optimized out>
weak_locations = <optimized out>
nqueue = 0x559b72f69e70
_ptr = <optimized out>
object = 0x559b72f6c4f0
old_ref = <optimized out>
retry_atomic_decrement1 = <optimized out>
__func__ = "g_object_unref"
#21 0x00007fa45da5e8d4 in shell_dispose (object=0x559b72ecef40) at /usr/src/debug/evolution-3.48.0-1.fc38.x86_64/src/shell/e-shell.c:1658
_pp = {in = 0x559b72eceda8 "", out = 0x559b72eceda8}
_p = <optimized out>
_destroy = <optimized out>
priv = 0x559b72eced80
alert = 0x0
#22 0x00007fa45cb21af4 in g_object_unref (_object=0x559b72ecef40) at ../gobject/gobject.c:3891
_pp = <optimized out>
gaig_temp = <optimized out>
gaig_temp = <optimized out>
weak_locations = <optimized out>
nqueue = 0x559b72f6ee00
_ptr = <optimized out>
object = 0x559b72ecef40
old_ref = <optimized out>
retry_atomic_decrement1 = <optimized out>
__func__ = "g_object_unref"
#23 0x0000559b7221b7c9 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/evolution-3.48.0-1.fc38.x86_64/src/shell/main.c:804
shell = 0x559b72ecef40
settings = <optimized out>
success = <optimized out>
error = 0x0