[xfce_notify_daemon_place_notification_window] Crash on SIGSEGV
EDIT: I've also tested the xfce4-notifyd-git from AUR, the bug (i.e. SIGSEGV in the same place, albeit possibly different vars) were still reproducible. I've also verified that reserved_rectangles = 0x0 and monitors_workarea = 0x0, so the issue ticket is still relevant in its entirety.
Issue Description
When checking out my coredumpctl, I've noticed that xfce4-notifyd does a lot of SIGSEGV.
I don't think it has any impact, other than constant crashing. I believe XFCE4 further recovers the notification daemon, so it is unnoticeable to end users.
I've pinpointed the bug to xndaemon->reserved_rectangles, used in xfce_notify_daemon_place_notification_window being NULL. I have yet to find what causes it to have NULL and whether it is on purpose, by analyzing the source code.
Outside of context for this issue, I've also noticed NULL in some other fields, like monitors_workarea. It might be interesting to investigate it if there will be more cases of SIGSEGV reported.
Expected Behavior
xfce4-notifyd will graciously recover from crashes (not cause SIGSEGV by proper memory management) or abort its execution if runtime conditions are unrecoverable.
Additional Information
Backtrace (full)
#0 0x00005591dc3c0a8a in xfce_notify_daemon_place_notification_window
(xndaemon=xndaemon@entry=0x5591e4d0c200 [XfceNotifyDaemon], window=window@entry=0x5591e4f3e970 [XfceNotifyWindow], monitor=0x5591e4bbb5d0 [GdkWaylandMonitor])
at /usr/src/debug/xfce4-notifyd/xfce4-notifyd/xfce4-notifyd/xfce-notify-daemon.c:805
widget = 0x5591e4f3e970 [XfceNotifyWindow]
screen = <optimized out>
allocation = {x = 0, y = 0, width = 252, height = 76}
max_width = 0
monitor_num = <optimized out>
found = 0
workarea_width = <optimized out>
workarea_height = <optimized out>
xinitial = <optimized out>
yinitial = <optimized out>
widget_geom = {x = 0, y = 0, width = 1245313536, height = 1622344369}
is_center = <optimized out>
past_center = <optimized out>
_g_boolean_var_14 = <optimized out>
#1 0x00005591dc3c0ef9 in xfce_notify_daemon_update_reserved_rectangles
(key=<optimized out>, value=<optimized out>, data=0x5591e4d0c200)
at /usr/src/debug/xfce4-notifyd/xfce4-notifyd/xfce4-notifyd/xfce-notify-daemon.c:902
window = 0x5591e4f3e970 [XfceNotifyWindow]
monitor = <optimized out>
l = 0x5591e4bf2c50 = {0x5591e4f3e970}
xndaemon = 0x5591e4d0c200 [XfceNotifyDaemon]
notification = <optimized out>
windows = <optimized out>
#2 0x00007fb1258d2f76 in g_tree_foreach
(tree=<optimized out>, func=0x5591dc3c0e90 <xfce_notify_daemon_update_reserved_rectangles>, user_data=0x5591e4d0c200) at ../glib/glib/gtree.c:1138
node = 0x5591e53730a0
_g_boolean_var_32 = <optimized out>
#3 g_tree_foreach
(tree=<optimized out>, func=0x5591dc3c0e90 <xfce_notify_daemon_update_reserved_rectangles>, user_data=0x5591e4d0c200) at ../glib/glib/gtree.c:1123
node = <optimized out>
#7 0x00007fb1259c7fe3 in <emit signal 'monitors-changed or 0x7fb125db5a70 "monitors-changed"' on instance 0x5591e4b950a0 [GdkWaylandScreen]>
(instance=instance@entry=0x5591e4b950a0, detailed_signal=detailed_signal@entry=0x7fb125db5a70 "monitors-changed") at ../glib/gobject/gsignal.c:3665
var_args = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fff57d217a0, reg_save_area = 0x7fff57d216c0}}
detail = <optimized out>
signal_id = <optimized out>
itype = 0x5591e4ba6960 [GdkWaylandScreen/GdkScreen]
#4 0x00007fb1259a5bcc in g_closure_invoke
(closure=0x5591e4c4c740, return_value=0x0, n_param_values=1, param_values=0x7fff57d21420, invocation_hint=0x7fff57d21370) at ../glib/gobject/gclosure.c:916
marshal = 0x7fb1259aaef0 <g_cclosure_marshal_VOID__VOID>
marshal_data = 0x0
in_marshal = 0
reffed_flags = {flags = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 0, n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0, is_invalid = 0}, closure = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 0, n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0, is_invalid = 0, marshal = 0x5591e4bf2660, data = 0x0, notifiers = 0x1}, atomic_int = 2}
real_closure = 0x5591e4c4c720
#5 0x00007fb1259c584b in signal_emit_unlocked_R
(node=node@entry=0x7fff57d21540, detail=detail@entry=0, instance=instance@entry=0x5591e4b950a0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff57d21420) at ../glib/gobject/gsignal.c:3929
tmp = <optimized out>
handler = 0x5591e4cadff0
accumulator = <optimized out>
emission = {next = 0x7fff57d21e70, instance = 0x5591e4b950a0, ihint = {signal_id = 22, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = 0x5591e4bdc910
return_accu = <optimized out>
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 = <optimized out>
max_sequential_handler_number = <optimized out>
return_value_altered = <optimized out>
n_params = <optimized out>
#6 0x00007fb1259c7a34 in signal_emit_valist_unlocked
(instance=instance@entry=0x5591e4b950a0, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fff57d21690)
at ../glib/gobject/gsignal.c:3561
instance_and_params = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = <optimized out>, itype = <optimized out>, name = <optimized out>, destroyed = <optimized out>, flags = <optimized out>, n_params = <optimized out>, single_va_closure_is_valid = <optimized out>, single_va_closure_is_after = <optimized out>, param_types = <optimized out>, return_type = <optimized out>, class_closure_bsa = <optimized out>, accumulator = <optimized out>, c_marshaller = <optimized out>, va_marshaller = <optimized out>, emission_hooks = <optimized out>, single_va_closure = <optimized out>}
#8 0x00007fb125d7412f in _gdk_wayland_screen_remove_output
(screen=0x5591e4b950a0 [GdkWaylandScreen], id=73)
at ../gtk/gdk/wayland/gdkscreen-wayland.c:1932
screen_wayland = 0x5591e4b950a0 [GdkWaylandScreen]
display_wayland = 0x5591e4b87740 [GdkWaylandDisplay]
monitor = 0x5591e4bbb5d0 [GdkWaylandMonitor]
#9 gdk_registry_handle_global_remove
(data=0x5591e4b87740, registry=<optimized out>, id=73)
at ../gtk/gdk/wayland/gdkdisplay-wayland.c:577
display_wayland = 0x5591e4b87740 [GdkWaylandDisplay]
display = 0x5591e4b87740 [GdkWaylandDisplay]
#10 0x00007fb124e1dcd6 in ffi_call_unix64 () at ../src/x86/unix64.S:105
#11 0x00007fb124e199ad in ffi_call_int
(cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:734
classes = {X86_64_INTEGERSI_CLASS, 32767, 1473386672, 32767}
stack = 0x7fff57d21730 "I"
argp = 0x7fff57d217f0 ""
arg_types = <optimized out>
gprcount = 3
ssecount = <optimized out>
ngpr = 1
nsse = 0
i = <optimized out>
avn = <optimized out>
flags = <optimized out>
reg_args = 0x7fff57d21730
#12 0x00007fb124e1cd52 in ffi_call
(cif=cif@entry=0x7fff57d219b0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=<optimized out>, avalue@entry=0x7fff57d21a80) at ../src/x86/ffi64.c:1113
arg_types = <optimized out>
avalue_copy = <optimized out>
i = <optimized out>
nargs = 3
max_reg_struct_size = <optimized out>
#13 0x00007fb124eec77d in wl_closure_invoke
(closure=closure@entry=0x5591e4ed43a0, target=<optimized out>,
target@entry=0x5591e4bb8300, opcode=opcode@entry=1, data=<optimized out>, flags=1) at ../wayland-1.25.0/src/connection.c:1243
count = 1
cif = {abi = FFI_UNIX64, nargs = 3, arg_types = 0x7fff57d219d0, rtype = 0x7fb124e1f3e0 <ffi_type_void>, bytes = 0, flags = 0}
ffi_types = {0x7fb124e1f2e0 <ffi_type_pointer>, 0x7fb124e1f2e0 <ffi_type_pointer>, 0x7fb124e1f340 <ffi_type_uint32>, 0x7fb124eece66 <ring_buffer_put+166>, 0x5591e4b9f7b0, 0x7fb12549481c <__internal_syscall_cancel+92>, 0x7fb124238f48, 0x7fb124eeb6e8 <wl_closure_init+200>, 0xdce4b9f7b0, 0xdc, 0x75, 0x60b302b14a39fa00, 0x2f, 0xc0001, 0x5591e4b9f600, 0x5591e4b9f728, 0x8, 0x1, 0x7fff57d21c20, 0x7fb124eefcd2 <wl_display_read_events+194>, 0x7fff57d21a90, 0x7fb125494864 <__syscall_cancel+20>}
ffi_args = {0x7fff57d21990, 0x7fff57d21998, 0x5591e4ed43b8, 0x5591e4bb8300, 0x5591e4b9f600, 0x5591e4b9f790, 0x7fff57d21b60, 0x5591e4ed43a0, 0x7fb124ef2c42, 0x7fb124ef2c42, 0x5591e4b9f728, 0x0, 0x7fff0000000c, 0x5591e4b9f600, 0x0, 0x0, 0x75, 0x0, 0x7fff57d21b40, 0x2, 0x7fff57d21b60, 0x80}
implementation = <optimized out>
#14 0x00007fb124eed609 in dispatch_event
(display=display@entry=0x5591e4b9f600, queue=queue@entry=0x5591e4b9f6f8)
at ../wayland-1.25.0/src/wayland-client.c:1731
closure = 0x5591e4ed43a0
proxy = 0x5591e4bb8300
opcode = 1
proxy_destroyed = <optimized out>
#15 0x00007fb124eeda13 in dispatch_queue
(display=0x5591e4b9f600, queue=0x5591e4b9f6f8)
at ../wayland-1.25.0/src/wayland-client.c:1877
count = 6
#16 wl_display_dispatch_queue_pending
(display=display@entry=0x5591e4b9f600, queue=queue@entry=0x5591e4b9f6f8)
at ../wayland-1.25.0/src/wayland-client.c:2242
ret = <optimized out>
#17 0x00007fb124ef1584 in wl_display_dispatch_queue_timeout
(display=display@entry=0x5591e4b9f600, queue=queue@entry=0x5591e4b9f6f8, timeout=timeout@entry=0x0) at ../wayland-1.25.0/src/wayland-client.c:2148
ret = <optimized out>
now = {tv_sec = 0, tv_nsec = 0}
deadline = {tv_sec = 0, tv_nsec = <optimized out>}
result = {tv_sec = 94085096568144, tv_nsec = 224}
remaining_timeout = 0x0
#18 0x00007fb124ef1660 in wl_display_dispatch_queue
(display=display@entry=0x5591e4b9f600, queue=queue@entry=0x5591e4b9f6f8)
at ../wayland-1.25.0/src/wayland-client.c:2215
ret = <optimized out>
#19 0x00007fb124ef174c in wl_display_roundtrip_queue
(display=display@entry=0x5591e4b9f600, queue=queue@entry=0x5591e4b9f6f8)
at ../wayland-1.25.0/src/wayland-client.c:1479
display_wrapper = 0x5591e4cc31e0
callback = 0x5591e5372db0
done = 0
ret = 0
#20 0x00007fb124ef17a1 in wl_display_roundtrip
(display=display@entry=0x5591e4b9f600)
at ../wayland-1.25.0/src/wayland-client.c:1508
#21 0x00007fb125810b11 in custom_shell_surface_on_window_map
(widget=0x5591e4f3e970 [XfceNotifyWindow], self=0x5591e4fb78d0)
at ../gtk-layer-shell-0.10.1/src/custom-shell-surface.c:90
gdk_window = <optimized out>
wl_surface = <optimized out>
display = 0x5591e4b9f600
start_time_micro = 75799098746
#26 0x00007fb1259c7d94 in <emit signal 'map' on instance 0x5591e4f3e970 [XfceNotifyWindow]>
(instance=instance@entry=0x5591e4f3e970, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3624
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fff57d22290, reg_save_area = 0x7fff57d221d0}}
#22 0x00007fb1259a5bcc in g_closure_invoke
(closure=0x5591e4c81e00, return_value=0x0, n_param_values=1, param_values=0x7fff57d21f30, invocation_hint=0x7fff57d21e80) at ../glib/gobject/gclosure.c:916
marshal = 0x7fb1259aaef0 <g_cclosure_marshal_VOID__VOID>
marshal_data = 0x0
in_marshal = 0
reffed_flags = {flags = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 0, n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0, is_invalid = 0}, closure = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 0, n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0, is_invalid = 0, marshal = 0x0, data = 0x7fb1259aae80 <g_type_class_meta_marshal>, notifiers = 0x5591e4c01c50}, atomic_int = 2}
real_closure = 0x5591e4c81de0
#23 0x00007fb1259c584b in signal_emit_unlocked_R
(node=node@entry=0x7fff57d22050, detail=detail@entry=0, instance=instance@entry=0x5591e4f3e970, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff57d21f30) at ../glib/gobject/gsignal.c:3929
tmp = <optimized out>
handler = 0x5591e4d23aa0
accumulator = <optimized out>
emission = {next = 0x7fff57d22450, instance = 0x5591e4f3e970, ihint = {signal_id = 57, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = 0x5591e4d23aa0
return_accu = <optimized out>
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 = <optimized out>
max_sequential_handler_number = <optimized out>
return_value_altered = <optimized out>
n_params = <optimized out>
#24 0x00007fb1259c7a34 in signal_emit_valist_unlocked
(instance=instance@entry=0x5591e4f3e970, signal_id=signal_id@entry=57, detail=detail@entry=0, var_args=var_args@entry=0x7fff57d221b0)
at ../glib/gobject/gsignal.c:3561
instance_and_params = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = <optimized out>, itype = <optimized out>, name = <optimized out>, destroyed = <optimized out>, flags = <optimized out>, n_params = <optimized out>, single_va_closure_is_valid = <optimized out>, single_va_closure_is_after = <optimized out>, param_types = <optimized out>, return_type = <optimized out>, class_closure_bsa = <optimized out>, accumulator = <optimized out>, c_marshaller = <optimized out>, va_marshaller = <optimized out>, emission_hooks = <optimized out>, single_va_closure = <optimized out>}
#25 0x00007fb1259c7cd9 in g_signal_emit_valist
(instance=0x5591e4f3e970, signal_id=57, detail=0, var_args=var_args@entry=0x7fff57d221b0) at ../glib/gobject/gsignal.c:3304
#27 0x00007fb12615c731 in gtk_widget_map
(widget=0x5591e4f3e970 [XfceNotifyWindow]) at ../gtk/gtk/gtkwidget.c:5058
priv = <optimized out>
_g_boolean_var_28 = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#28 gtk_widget_map (widget=0x5591e4f3e970 [XfceNotifyWindow])
at ../gtk/gtk/gtkwidget.c:5041
priv = <optimized out>
_g_boolean_var_29 = <optimized out>
_g_boolean_var_30 = <optimized out>
#29 0x00007fb12617fa50 in gtk_window_show
(widget=0x5591e4f3e970 [XfceNotifyWindow]) at ../gtk/gtk/gtkwindow.c:6214
window = 0x5591e4f3e970 [XfceNotifyWindow]
priv = <optimized out>
container = 0x5591e4f3e970 [XfceNotifyWindow]
is_plug = <optimized out>
#30 0x00005591dc3c8d8d in xfce_notify_window_show
(widget=0x5591e4f3e970 [XfceNotifyWindow])
at /usr/src/debug/xfce4-notifyd/xfce4-notifyd/xfce4-notifyd/xfce-notify-window.c:864
window = 0x5591e4f3e970 [XfceNotifyWindow]
#35 0x00007fb1259c7d94 in <emit signal 'show' on instance 0x5591e4f3e970 [XfceNotifyWindow]>
(instance=instance@entry=0x5591e4f3e970, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3624
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fff57d22870, reg_save_area = 0x7fff57d227b0}}
#31 0x00007fb1259a5bcc in g_closure_invoke
(closure=0x5591e4b92580, return_value=0x0, n_param_values=1, param_values=0x7fff57d22510, invocation_hint=0x7fff57d22460) at ../glib/gobject/gclosure.c:916
marshal = 0x7fb1259aae80 <g_type_class_meta_marshal>
marshal_data = 0xa0
in_marshal = 0
reffed_flags = {flags = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 0, n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0, is_invalid = 0}, closure = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 0, n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0, is_invalid = 0, marshal = 0x60b302b14a39fa00, data = 0x5591e4b7c0a8, notifiers = 0x5591e4c74100}, atomic_int = 2}
real_closure = 0x5591e4b92560
#32 0x00007fb1259c5999 in signal_emit_unlocked_R
(node=node@entry=0x7fff57d22630, detail=detail@entry=0, instance=instance@entry=0x5591e4f3e970, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff57d22510) at ../glib/gobject/gsignal.c:3762
accumulator = <optimized out>
emission = {next = 0x0, instance = 0x5591e4f3e970, ihint = {signal_id = 55, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x5591e4c6a280 [XfceNotifyWindow/GtkWindow/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = <optimized out>
return_accu = <optimized out>
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 = <optimized out>
max_sequential_handler_number = 334
return_value_altered = <optimized out>
n_params = <optimized out>
#33 0x00007fb1259c7a34 in signal_emit_valist_unlocked
(instance=instance@entry=0x5591e4f3e970, signal_id=signal_id@entry=55, detail=detail@entry=0, var_args=var_args@entry=0x7fff57d22790)
at ../glib/gobject/gsignal.c:3561
instance_and_params = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = <optimized out>, itype = <optimized out>, name = <optimized out>, destroyed = <optimized out>, flags = <optimized out>, n_params = <optimized out>, single_va_closure_is_valid = <optimized out>, single_va_closure_is_after = <optimized out>, param_types = <optimized out>, return_type = <optimized out>, class_closure_bsa = <optimized out>, accumulator = <optimized out>, c_marshaller = <optimized out>, va_marshaller = <optimized out>, emission_hooks = <optimized out>, single_va_closure = <optimized out>}
#34 0x00007fb1259c7cd9 in g_signal_emit_valist
(instance=0x5591e4f3e970, signal_id=55, detail=0, var_args=var_args@entry=0x7fff57d22790) at ../glib/gobject/gsignal.c:3304
#36 0x00007fb12615ce62 in gtk_widget_show
(widget=0x5591e4f3e970 [XfceNotifyWindow]) at ../gtk/gtk/gtkwidget.c:4859
parent = <optimized out>
_g_boolean_var_23 = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#37 gtk_widget_show (widget=0x5591e4f3e970 [XfceNotifyWindow])
at ../gtk/gtk/gtkwidget.c:4832
parent = <optimized out>
#38 0x00005591dc3c12b9 in notify_show_windows (data=<optimized out>)
at /usr/src/debug/xfce4-notifyd/xfce4-notifyd/xfce4-notifyd/xfce-notify-daemon.c:939
l = 0x5591e4bf2c50 = {0x5591e4f3e970}
notification = <optimized out>
#39 0x00007fb125892c76 in g_main_dispatch (context=0x5591e4b8b980)
at ../glib/glib/gmain.c:3591
user_data = 0x5591e4c12e30
callback = 0x5591dc3c1260 <notify_show_windows>
gaig_temp = <optimized out>
gaig_temp = <optimized out>
cb_data = 0x7fb0e8014a40
need_destroy = <optimized out>
dispatch = 0x7fb12588eea0 <g_idle_dispatch>
prev_source = 0x0
was_in_call = 0
cb_funcs = 0x7fb1259923a0 <g_source_callback_funcs>
begin_time_nsec = 75799098360985
source = 0x7fb0f800b690
gaig_temp = <optimized out>
current = 0x5591e4b93460
i = 0
#40 0x00007fb125894ed7 in g_main_context_dispatch_unlocked
(context=0x5591e4b8b980) at ../glib/glib/gmain.c:4451
#41 g_main_context_iterate_unlocked
(context=0x5591e4b8b980, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4516
max_priority = 200
timeout_usec = 0
some_ready = 1
nfds = 4
allocated_nfds = <optimized out>
fds = <optimized out>
begin_time_nsec = <optimized out>
#42 0x00007fb125895217 in g_main_loop_run (loop=0x5591e4dc56d0)
at ../glib/glib/gmain.c:4721
self = <optimized out>
#43 0x00007fb125feac4f in gtk_main () at ../gtk/gtk/gtkmain.c:1332
loop = 0x5591e4dc56d0
#44 0x00005591dc3b9601 in main (argc=<optimized out>, argv=<optimized out>)
at /usr/src/debug/xfce4-notifyd/xfce4-notifyd/xfce4-notifyd/main.c:132
xndaemon = 0x5591e4d0c200 [XfceNotifyDaemon]
error = 0x0
windowing_error = <optimized out>Backtrace (full, after 14bb3cc6)
(gdb) bt full
#0 0x000055d73e433dbe in xfce_notify_daemon_place_notification_window
(xndaemon=xndaemon@entry=0x55d746efb820, window=window@entry=0x55d746f9ab50, monitor=monitor@entry=0x55d74710f0d0)
at ../../../../xfce4-notifyd/xfce-notify-daemon.c:824
widget = 0x55d746f9ab50
screen = <optimized out>
allocation = {x = 1116969216, y = 32765, width = 1793712143, height = 32532}
max_width = 0
monitor_num = <optimized out>
found = 0
workarea_width = <optimized out>
workarea_height = <optimized out>
xinitial = <optimized out>
yinitial = <optimized out>
widget_geom = {x = 0, y = 0, width = 1194922368, height = 21975}
is_center = <optimized out>
past_center = <optimized out>
_g_boolean_var_14 = <optimized out>
#1 0x000055d73e436e89 in notify_notify
(skeleton=0x55d746efb820, invocation=0x7f1458005620, app_name=<optimized out>, replaces_id=<optimized out>, app_icon=0x55d74737ae60 "", summary=<optimized out>, body=0x7f1458004280 "", actions_data=0x55d7471da940, hints=0x7f1458004380, expire_timeout=2000, xndaemon=0x55d746ef--Type <RET> for more, q to quit, c to continue without paging--c
b820) at ../../../../xfce4-notifyd/xfce-notify-daemon.c:1660
window = 0x55d746f9ab50
nat_size = {width = 240, height = 76}
allocation = {x = 0, y = 0, width = 240, height = 76}
monitor = 0x55d74710f0d0
l = 0x55d746fa2240 = {0x55d746f9ab50}
windows = <optimized out>
n_monitors = <optimized out>
i = <optimized out>
display = <optimized out>
monitors = <optimized out>
notification = <optimized out>
actions = <optimized out>
n_actions = <optimized out>
log_id = <optimized out>
image_data = 0x0
icon_data = 0x0
image_path = <optimized out>
desktop_id = <optimized out>
icon_name = 0x55d7473963f0 "microphone-sensitivity-high-symbolic"
icon_pixbuf = 0x0
icon_id = <optimized out>
new_app_name = 0x55d7471e67a0 "org.xfce.clipman"
value_hint = <optimized out>
urgency = <optimized out>
value_hint_set = <optimized out>
icon_only = <optimized out>
transient = <optimized out>
actions_are_icon_names = <optimized out>
log_level_ok = <optimized out>
log_level_apps_ok = <optimized out>
has_sound = <optimized out>
sound_props = 0x0
ca_err = <optimized out>
item = <optimized out>
iter = {x = {139725352485760, 5, 5, 0, 94383098622160, 144, 140725720423280, 3579507750, 139723876073474, 0, 139725677512544, 139725352484512, 140724603453442, 94383095157200, 140725720423072, 139725675789347}}
OUT_id = 20
application_is_muted = <optimized out>
summary_text = <optimized out>
body_text = <optimized out>
suppress_duplicate = <optimized out>
#2 0x000055d73e42ee1a in _g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING_UINT_STRING_STRING_STRING_BOXED_VARIANT_INT
(invocation_hint=<optimized out>, closure=0x55d746e96460, return_value=0x7ffd42939cb0, n_param_values=<optimized out>, param_values=0x55d746f2b390, marshal_data=<optimized out>) at xfce4-notifyd/xfce-notify-fdo-gbus.c:367
callback = <optimized out>
cc = 0x55d746e96460
data1 = <optimized out>
data2 = <optimized out>
v_return = <optimized out>
#7 Python Exception <class 'gdb.error'>: There is no member named v_pointer.
#8 0x000055d73e42f734 in _xfce_notify_fdo_gbus_skeleton_handle_method_call
(connection=<optimized out>, sender=<optimized out>, object_path=<optimized out>, interface_name=0x55d747390ec0 "org.freedesktop.Notifications", method_name=0x7f1458004f20 "Notify", parameters=<optimized out>, invocation=0x7f1458005620, user_data=0x55d746efb820)
at xfce4-notifyd/xfce-notify-fdo-gbus.c:2098
skeleton = 0x55d746efb820
info = 0x55d73e446260 <_xfce_notify_fdo_gbus_method_info_notify>
iter = {x = {139725352490448, 8, 8, 0, 140725720424272, 94383095228800, 140725720424240, 3579507750, 140725720424256, 15094527764753501440, 192, 94383096444960, 0, 94383096444960, 140725720424272, 1}}
child = <optimized out>
paramv = 0x55d746f2b390
num_params = <optimized out>
num_extra = <optimized out>
n = <optimized out>
signal_id = 194
return_value = {g_type = 0x14, 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}}}
#9 0x00007f146b6ba50c in g_dbus_interface_skeleton_method_dispatch_real
(interface=<optimized out>, method_call_func=0x55d73e42f530 <_xfce_notify_fdo_gbus_skeleton_handle_method_call>, invocation=0x7f1458005620, flags=<optimized out>, object=<optimized out>) at ../glib/gio/gdbusinterfaceskeleton.c:616
has_handlers = <optimized out>
has_default_class_handler = <optimized out>
emit_authorized_signal = <optimized out>
run_in_thread = <optimized out>
#10 0x00007f146b6a4a0d in call_in_idle_cb (user_data=0x7f1458005620) at ../glib/gio/gdbusconnection.c:5470
invocation = 0x7f1458005620
vtable = <optimized out>
registration_id = <optimized out>
subtree_registration_id = <optimized out>
ei = 0x55d747311520
es = 0x0
#11 0x00007f146b422c76 in g_main_dispatch (context=0x55d746dd2980) at ../glib/glib/gmain.c:3591
user_data = 0x7f1458005620
callback = 0x7f146b6a48e0 <call_in_idle_cb>
gaig_temp = <optimized out>
gaig_temp = <optimized out>
cb_data = 0x7f14580082f0
need_destroy = <optimized out>
dispatch = 0x7f146b41eea0 <g_idle_dispatch>
prev_source = 0x0
was_in_call = 0
cb_funcs = 0x7f146b5223a0 <g_source_callback_funcs>
begin_time_nsec = 20188881031701
source = 0x7f1458005690
gaig_temp = <optimized out>
current = 0x55d746dda460
i = 0
#12 0x00007f146b424ed7 in g_main_context_dispatch_unlocked (context=0x55d746dd2980) at ../glib/glib/gmain.c:4451
#13 g_main_context_iterate_unlocked (context=0x55d746dd2980, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at ../glib/glib/gmain.c:4516
max_priority = 2147483647
timeout_usec = -1
some_ready = 1
nfds = 4
allocated_nfds = <optimized out>
fds = <optimized out>
begin_time_nsec = <optimized out>
#14 0x00007f146b425217 in g_main_loop_run (loop=0x55d746df1f50) at ../glib/glib/gmain.c:4721
self = <optimized out>
#15 0x00007f146adeac4f in gtk_main () at ../gtk/gtk/gtkmain.c:1332
loop = 0x55d746df1f50
#16 0x000055d73e43bcc1 in main (argc=<optimized out>, argv=<optimized out>) at ../../../../xfce4-notifyd/main.c:128
xndaemon = 0x55d746efb820
error = 0x0
windowing_error = <optimized out>
(gdb)Versions
- OS distribution and version: Arch Linux, rolling
- Overall Xfce version: 4.20, also e66a356f
- xfce4-notifyd version (git hash if not a release): 0.9.7
- Windowing system (X11/Wayland): Wayland
- Compositor and version (if Wayland): labwc 0.20.1 wlroots-0.20.2