Occasional crashes in on_gamma_lut_changed() on resume
Current main/44. I usually get this crash after a longer suspend, which is why I suspect changing nightlight states to have a role in it. It's not easy to reproduce and bisect, but judging from the stack trace my hottest candidates are !2814 (merged) and the notorious !2795 (merged).
bt full
#0 g_type_check_instance_cast (type_instance=type_instance@entry=0x1e941d0, iface_type=0x1e41ae0 [None]) at ../gobject/gtype.c:4127
node = <optimized out>
iface = <optimized out>
is_instantiatable = <optimized out>
check = <optimized out>
#1 0x00007f1f92590b2e in CLUTTER_STAGE_VIEW (ptr=0x1e941d0) at ../clutter/clutter/clutter-stage-view.h:34
stage_view = <optimized out>
#2 on_gamma_lut_changed (crtc=<optimized out>, onscreen_native=0x1e08460) at ../src/backends/native/meta-onscreen-native.c:2163
stage_view = <optimized out>
#3 0x00007f1f93970fc0 in g_closure_invoke
(closure=0x1e74d00, return_value=0x0, n_param_values=1, param_values=0x7ffce550a760, invocation_hint=0x7ffce550a6e0) at ../gobject/gclosure.c:832
marshal = 0x7f1f939732b0 <g_cclosure_marshal_VOID__VOID>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x1e74ce0
__func__ = "g_closure_invoke"
#4 0x00007f1f9399ed86 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x1c713c0, detail=detail@entry=0, instance=instance@entry=0x1e86c50, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffce550a760) at ../gobject/gsignal.c:3796
tmp = <optimized out>
handler = 0x1c68b00
accumulator = 0x0
emission = {next = 0x7ffce550ac40, instance = 0x1e86c50, ihint = {signal_id = 34, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4 [None]}
hlist = <optimized out>
handler_list = 0x1c68b00
return_accu = 0x0
accu = {g_type = 0x0, 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 = 34
max_sequential_handler_number = 699447
return_value_altered = <optimized out>
#5 0x00007f1f9398e41a in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffce550a900) at ../gobject/gsignal.c:3549
instance_and_params = 0x7ffce550a760
signal_return_type = <optimized out>
param_values = 0x7ffce550a778
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#6 0x00007f1f9398e633 in g_signal_emit (instance=instance@entry=0x1e86c50, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3606
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffce550a9e0, reg_save_area = 0x7ffce550a920}}
#7 0x00007f1f92574dba in meta_crtc_kms_set_gamma_lut (crtc=0x1e86c50, lut=<optimized out>) at ../src/backends/native/meta-crtc-kms.c:260
crtc_kms = 0x1e86c50
kms_crtc = 0x1c6d000
backend = <optimized out>
monitor_manager_native = 0x1b50240
stage = 0x1e84a70
crtc_state = <optimized out>
gamma_ramp_string = 0x5b0fcd0 "[ r: 0,257,...,514,771 g: 0,221,...,443,664 b: 0,185,...,371,557 ]"
crtc_gamma = <optimized out>
#8 0x00007f1f92491f0f in set_gamma_lut (monitor=<optimized out>, mode=<optimized out>, monitor_crtc_mode=<optimized out>, user_data=0x62e99d0, error=<optimized out>) at ../src/backends/meta-monitor.c:710
lut = 0x62e99d0
crtc = <optimized out>
#9 0x00007f1f9249486f in meta_monitor_mode_foreach_crtc (monitor=monitor@entry=0x1e86e30, mode=0x1c6a8b0, func=func@entry=0x7f1f92491ef0 <set_gamma_lut>, user_data=user_data@entry=0x62e99d0, error=error@entry=0x0) at ../src/backends/meta-monitor.c:2102
monitor_crtc_mode = <optimized out>
monitor_priv = <optimized out>
l = 0x1c67760 = {0x1e86dc0}
i = 0
#10 0x00007f1f924948d3 in meta_monitor_set_gamma_lut (monitor=monitor@entry=0x1e86e30, lut=lut@entry=0x62e99d0) at ../src/backends/meta-monitor.c:728
current_mode = <optimized out>
__func__ = "meta_monitor_set_gamma_lut"
#11 0x00007f1f92483d04 in meta_color_device_update (color_device=color_device@entry=0x48b6720, temperature=4414) at ../src/backends/meta-color-device.c:1266
lut = 0x62e99d0
color_profile = <optimized out>
monitor = 0x1e86e30
lut_size = <optimized out>
#12 0x00007f1f9248489f in update_all_gamma (color_manager=0x1ca05b0) at ../src/backends/meta-color-manager.c:304
monitor = <optimized out>
color_device = 0x48b6720
priv = 0x1ca0560
monitor_manager = <optimized out>
l = 0x1c67560 = {0x1e86e30}
#13 0x00007f1f93970fc0 in g_closure_invoke (closure=0x4547680, return_value=0x0, n_param_values=2, param_values=0x7ffce550acd0, invocation_hint=0x7ffce550ac50) at ../gobject/gclosure.c:832
marshal = 0x7f1f93973a00 <g_cclosure_marshal_VOID__PARAM>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x4547660
__func__ = "g_closure_invoke"
#14 0x00007f1f9399ed86 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x1b38490, detail=detail@entry=409, instance=instance@entry=0x1b50350, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffce550acd0) at ../gobject/gsignal.c:3796
tmp = <optimized out>
handler = 0x4562440
accumulator = 0x0
emission = {next = 0x7ffce550b130, instance = 0x1b50350, ihint = {signal_id = 1, detail = 409, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4 [None]}
hlist = <optimized out>
handler_list = 0x4562440
return_accu = 0x0
accu = {g_type = 0x0, 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 = 1
max_sequential_handler_number = 699447
return_value_altered = <optimized out>
#15 0x00007f1f9398e41a in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffce550ae90) at ../gobject/gsignal.c:3549
instance_and_params = 0x7ffce550acd0
signal_return_type = <optimized out>
param_values = 0x7ffce550ace8
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#16 0x00007f1f9398e633 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3606
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7ffce550af70, reg_save_area = 0x7ffce550aeb0}}
#17 0x00007f1f9397af94 in g_object_dispatch_properties_changed (object=0x1b50350, n_pspecs=<optimized out>, pspecs=<optimized out>) at ../gobject/gobject.c:1428
i = <optimized out>
#18 0x00007f1f93980b2f in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x1b50350) at ../gobject/gobject.c:1544
nqueue = <optimized out>
need_thaw = <optimized out>
object_flags = <optimized out>
needs_notify = 1
in_init = <optimized out>
pspec = <optimized out>
__func__ = "g_object_notify"
#19 g_object_notify (object=0x1b50350, property_name=property_name@entry=0x7f1f925af1e2 "temperature") at ../gobject/gobject.c:1594
pspec = <optimized out>
__func__ = "g_object_notify"
#20 0x00007f1f9247929c in meta_dbus_settings_daemon_color_proxy_g_properties_changed (_proxy=<optimized out>, changed_properties=<optimized out>, invalidated_properties=0x2c25510) at src/meta-dbus-gsd-color.c:577
proxy = 0x1b50350
n = <optimized out>
key = 0x230fd70 "Temperature"
iter = 0x7f1f6c7afc50
info = <optimized out>
#21 0x00007f1f93970fc0 in g_closure_invoke (closure=0x1b452e0, return_value=0x0, n_param_values=3, param_values=0x7ffce550b1c0, invocation_hint=0x7ffce550b140) at ../gobject/gclosure.c:832
marshal = 0x7f1f93973240 <g_type_class_meta_marshal>
marshal_data = 0x88
in_marshal = 0
real_closure = 0x1b452c0
__func__ = "g_closure_invoke"
#22 0x00007f1f9399eeb5 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x1b45310, detail=detail@entry=0, instance=instance@entry=0x1b50350, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffce550b1c0) at ../gobject/gsignal.c:3835
accumulator = 0x0
emission = Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str
{next = 0x0, instance = 0x1b50350, ihint = {signal_id = 11, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = }
hlist = <optimized out>
handler_list = 0x0
return_accu = 0x0
accu = {g_type = 0x0, 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 = 11
max_sequential_handler_number = 699447
return_value_altered = <optimized out>
#23 0x00007f1f9398e41a in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffce550b390) at ../gobject/gsignal.c:3549
instance_and_params = 0x7ffce550b1c0
signal_return_type = <optimized out>
param_values = 0x7ffce550b1d8
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#24 0x00007f1f9398e633 in g_signal_emit (instance=instance@entry=0x1b50350, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3606
var_args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7ffce550b470, reg_save_area = 0x7ffce550b3b0}}
#25 0x00007f1f9353d32b in on_properties_changed (connection=<optimized out>, sender_name=<optimized out>, object_path=<optimized out>, interface_name=<optimized out>, signal_name=<optimized out>, parameters=<optimized out>, user_data=0x44a0340) at ../gio/gdbusproxy.c:1109
proxy_weak = 0x44a0340
emit_g_signal = <optimized out>
proxy = 0x1b50350
interface_name_for_signal = 0x230fd50 "org.gnome.SettingsDaemon.Color"
changed_properties = 0x7f1f6ce44d20
invalidated_properties = 0x2c25510
iter = {x = {139772947615008, 1, 1, 0, 28571744, 139773590678448, 206158430248, 3579507750, 140724155757808, 2542345769735387136, 71291696, 2542345769735387136, 139773591291072, 18446744073709551488, 0, 139772941864056}}
key = 0x5cc0e30 "\300\066\335\002"
value = 0x7f1f6cc9b0d0
n = <optimized out>
#26 0x00007f1f935290ef in emit_signal_instance_in_idle_cb (data=data@entry=0x7f1f6cd0f550) at ../gio/gdbusconnection.c:3791
signal_instance = 0x7f1f6cd0f550
parameters = 0x7f1f6c485100
has_subscription = 1
#27 0x00007f1f93337cb2 in g_idle_dispatch (source=0x7f1f6c8c4ee0, callback=0x7f1f93529070 <emit_signal_instance_in_idle_cb>, user_data=0x7f1f6cd0f550) at ../glib/gmain.c:6124
idle_source = 0x7f1f6c8c4ee0
again = <optimized out>
#28 0x00007f1f93338cbf in g_main_dispatch (context=0x1b3f860) at ../glib/gmain.c:3444
dispatch = 0x7f1f93337c90 <g_idle_dispatch>
prev_source = 0x0
begin_time_nsec = 12159357485381
was_in_call = 0
user_data = 0x7f1f6cd0f550
callback = 0x7f1f93529070 <emit_signal_instance_in_idle_cb>
cb_funcs = 0x7f1f934203e0 <g_source_callback_funcs>
cb_data = 0x7f1f6cd31610
need_destroy = <optimized out>
source = 0x7f1f6c8c4ee0
current = 0x1b1e780
i = 23
#29 g_main_context_dispatch (context=0x1b3f860) at ../glib/gmain.c:4162
#30 0x00007f1f9338e598 in g_main_context_iterate.constprop.0 (context=0x1b3f860, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4238
max_priority = 0
timeout = 0
some_ready = 1
nfds = 15
allocated_nfds = <optimized out>
fds = <optimized out>
begin_time_nsec = 12159333667129
#31 0x00007f1f9333828f in g_main_loop_run (loop=0x43fdae0) at ../glib/gmain.c:4438
__func__ = "g_main_loop_run"
#32 0x00007f1f924d7616 in meta_context_run_main_loop (context=context@entry=0x1b3b0c0, error=error@entry=0x7ffce550b758) at ../src/core/meta-context.c:465
priv = 0x1b3b050
__func__ = "meta_context_run_main_loop"
#33 0x0000000000402978 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:668
context = 0x1b3b0c0
error = 0x0
ecode = 0