WayfireWM / WayfireWM/wf-shell
Panel crashes after immediately switching apps via launchers widget
Open
Nobody has claimed this yet.
bug
stale
- Dominant language
- C++
- Stars
- 179
- Forks
- 55
- Avg merge
- 16d 1h
- Merged PRs (30d)
- 3
Description
To reproduce:
- launch app that can give notifications
- receive notification
- switch to another app
Log with gdb:
Thread 1 "wf-panel" received signal SIGABRT, Aborted.
Downloading source file /usr/src/debug/glibc/glibc/nptl/pthread_kill.c
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
(gdb) bt full
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tidThread 1 "wf-panel" received signal SIGABRT, Aborted.
Downloading source file /usr/src/debug/glibc/glibc/nptl/pthread_kill.c
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
(gdb) bt full
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
tid = <optimized out>
ret = 0
pd = <optimized out>
old_mask = {__val = {140737488345552}}
ret = <optimized out>
#1 0x00007ffff63bdeb3 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78
No locals.
#2 0x00007ffff6365a30 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
ret = <optimized out>
#3 0x00007ffff634d4c3 in __GI_abort () at abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {140737324119622, 93825000235728,
93825000235728, 0, 7, 0, 4, 47244640256, 0, 140737488345736, 18446744073709551432, 11, 93825000235712, 140737488345776,
140737324567982, 140737325876448}}, sa_flags = -991923712, sa_restorer = 0x7fffffffdab0}
#4 0x00007ffff634d3df in __assert_fail_base (fmt=0x7ffff64d8b68 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=assertion@entry=0x7ffff778c8a0 "CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&surface->ref_count)",
file=file@entry=0x7ffff7787317 "../cairo/src/cairo-surface.c", line=line@entry=938,
function=function@entry=0x7ffff779a500 <__PRETTY_FUNCTION__.13> "cairo_surface_reference") at assert.c:94
str = 0x555555cf62d0 "v"
total = 4096
#5 0x00007ffff635dc67 in __assert_fail (
assertion=assertion@entry=0x7ffff778c8a0 "CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&surface->ref_count)",
file=file@entry=0x7ffff7787317 "../cairo/src/cairo-surface.c", line=line@entry=938,
function=function@entry=0x7ffff779a500 <__PRETTY_FUNCTION__.13> "cairo_surface_reference") at assert.c:103
No locals.
#6 0x00007ffff76f92e2 in cairo_surface_reference (surface=<optimized out>) at ../cairo/src/cairo-surface.c:938
__PRETTY_FUNCTION__ = <optimized out>
#7 cairo_surface_reference (surface=<optimized out>) at ../cairo/src/cairo-surface.c:932
__PRETTY_FUNCTION__ = "cairo_surface_reference"
#8 0x00007ffff7f04615 in gdk_wayland_window_ref_cairo_surface (window=<optimized out>) at ../gtk/gdk/wayland/gdkwindow-wayland.c:1019
impl = 0x5555556e0e20
#9 0x00007ffff7edc248 in gdk_window_ref_impl_surface (window=0x555555776350) at ../gtk/gdk/gdkwindow.c:673
No locals.
#10 gdk_window_get_content (window=0x555555776350) at ../gtk/gdk/gdkwindow.c:2828
surface = <optimized out>
content = <optimized out>
surface = <optimized out>
content = <optimized out>
__func__ = <optimized out>
_g_boolean_var_44 = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#11 gdk_window_begin_paint_internal (window=0x555555776350, region=0x555555c9b4a0) at ../gtk/gdk/gdkwindow.c:2963
clip_box = {x = 0, y = 0, width = 1366, height = 44}
sy = 4.6355707158390173e-310
needs_surface = 0
surface_content = <optimized out>
impl_class = <optimized out>
sx = 4.635570883837147e-310
clip_box = <optimized out>
impl_class = <optimized out>
sx = <optimized out>
sy = <optimized out>
needs_surface = <optimized out>
surface_content = <optimized out>
__func__ = <optimized out>
context = <optimized out>
ww = <optimized out>
wh = <optimized out>
#12 gdk_window_begin_paint_internal (window=window@entry=0x555555776350, region=region@entry=0x555555c9b4a0)
at ../gtk/gdk/gdkwindow.c:2930
clip_box = <optimized out>
impl_class = <optimized out>
sx = <optimized out>
sy = <optimized out>
needs_surface = <optimized out>
surface_content = <optimized out>
__func__ = "gdk_window_begin_paint_internal"
context = <optimized out>
ww = <optimized out>
wh = <optimized out>
#13 0x00007ffff7edc9c2 in gdk_window_begin_draw_frame (window=window@entry=0x555555776350, region=region@entry=0x555555c9b4a0)
at ../gtk/gdk/gdkwindow.c:3257
context = <optimized out>
impl_class = <optimized out>
__func__ = "gdk_window_begin_draw_frame"
#14 0x00007ffff6d565ec in gtk_widget_render (widget=0x55555580afe0, window=0x555555776350, region=0x555555c9b4a0)
at ../gtk/gtk/gtkwidget.c:17591
priv = <optimized out>
context = <optimized out>
do_clip = <optimized out>
cr = <optimized out>
x = 21845
y = 1434496992
is_double_buffered = <optimized out>
#15 0x00007ffff6be661f in gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1844
grab_widget = 0x555555b078e0
window_group = 0x555555bec3e0
rewritten_event = <optimized out>
device = <optimized out>
tmp_list = <optimized out>
event_widget = 0x55555580afe0
topmost_widget = <optimized out>
event_widget = <optimized out>
grab_widget = <optimized out>
topmost_widget = <optimized out>
window_group = <optimized out>
rewritten_event = <optimized out>
device = <optimized out>
tmp_list = <optimized out>
cleanup = <optimized out>
__func__ = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
mnemonics_visible = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#16 gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1691
event_widget = <optimized out>
grab_widget = 0x0
topmost_widget = 0x0
window_group = <optimized out>
rewritten_event = 0x0
device = <optimized out>
tmp_list = <optimized out>
cleanup = <optimized out>
__func__ = "gtk_main_do_event"
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
mnemonics_visible = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#17 0x00007ffff7ec73c7 in _gdk_event_emit (event=0x7fffffffdd80) at ../gtk/gdk/gdkevents.c:73
No locals.
#18 _gdk_event_emit (event=0x7fffffffdd80) at ../gtk/gdk/gdkevents.c:67
No locals.
#19 0x00007ffff7ed9dc2 in _gdk_window_process_updates_recurse_helper (window=0x555555776350, expose_region=<optimized out>)
at ../gtk/gdk/gdkwindow.c:3874
event = {type = GDK_EXPOSE, any = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000'}, expose = {
type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', area = {x = 0, y = 0, width = 1366, height = 44},
region = 0x555555c9b4a0, count = 0}, visibility = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
state = GDK_VISIBILITY_UNOBSCURED}, motion = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
time = 0, x = 2.898646250458562e-311, y = 6.9531436082580817e-310, axes = 0x555555c9b4a0, state = 0, is_hint = 21845,
device = 0x555555babe00, x_root = 6.9533558074065506e-310, y_root = 6.9533491253060408e-310}, button = {
type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', time = 0, x = 2.898646250458562e-311,
y = 6.9531436082580817e-310, axes = 0x555555c9b4a0, state = 0, button = 21845, device = 0x555555babe00,
x_root = 6.9533558074065506e-310, y_root = 6.9533491253060408e-310}, touch = {type = GDK_EXPOSE, window = 0x555555776350,
send_event = 0 '\000', time = 0, x = 2.898646250458562e-311, y = 6.9531436082580817e-310, axes = 0x555555c9b4a0,
state = 0, sequence = 0x555555babe00, emulating_pointer = -8672,
device = 0x7ffff7f028ac <gdk_wayland_window_invalidate_for_new_frame+44>, x_root = -nan(0xffffffffffff8),
y_root = 4.6355709132194286e-310}, scroll = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', time = 0,
x = 2.898646250458562e-311, y = 6.9531436082580817e-310, state = 1439282336, direction = 21845, device = 0x555500000000,
x_root = 4.6355708669092723e-310, y_root = 6.9533558074065506e-310, delta_x = 6.9533491253060408e-310,
delta_y = -nan(0xffffffffffff8), is_stop = 0}, key = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
time = 0, state = 0, keyval = 1366, length = 44, string = 0x555555c9b4a0 "\001", hardware_keycode = 0, group = 0 '\000',
is_modifier = 0}, crossing = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
subwindow = 0x55600000000, time = 44, x = 4.6355709153593257e-310, y = 4.6354998053636374e-310,
x_root = 4.6355708669092723e-310, y_root = 6.9533558074065506e-310, mode = 4159711404, detail = 32767, focus = -8,
state = 4294967295}, focus_change = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', in = 21946},
configure = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', x = 0, y = 0, width = 1366, height = 44},
property = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', atom = 0x55600000000, time = 44,
state = 32767}, selection = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
selection = 0x55600000000, target = 0x7fff0000002c, property = 0x555555c9b4a0, time = 0, requestor = 0x555555babe00},
owner_change = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', owner = 0x55600000000,
reason = (unknown: 0x2c), selection = 0x555555c9b4a0, time = 0, selection_time = 21845}, proximity = {type = GDK_EXPOSE,
window = 0x555555776350, send_event = 0 '\000', time = 0, device = 0x55600000000}, dnd = {type = GDK_EXPOSE,
window = 0x555555776350, send_event = 0 '\000', context = 0x55600000000, time = 44, x_root = 32767, y_root = 0},
window_state = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', changed_mask = 0, new_window_state = 0},
setting = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', action = GDK_SETTING_ACTION_NEW,
name = 0x55600000000 <error: Cannot access memory at address 0x55600000000>}, grab_broken = {type = GDK_EXPOSE,
window = 0x555555776350, send_event = 0 '\000', keyboard = 0, implicit = 0, grab_window = 0x7fff0000002c},
touchpad_swipe = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', phase = -66 '\276',
n_fingers = -70 '\272', time = 0, x = 2.898646250458562e-311, y = 6.9531436082580817e-310, dx = 4.6355709153593257e-310,
dy = 4.6354998053636374e-310, x_root = 4.6355708669092723e-310, y_root = 6.9533558074065506e-310, state = 4159711404},
touchpad_pinch = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', phase = -66 '\276',
n_fingers = -70 '\272', time = 0, x = 2.898646250458562e-311, y = 6.9531436082580817e-310, dx = 4.6355709153593257e-310,
dy = 4.6354998053636374e-310, angle_delta = 4.6355708669092723e-310, scale = 6.9533558074065506e-310,
x_root = 6.9533491253060408e-310, y_root = -nan(0xffffffffffff8), state = 1439239024}, pad_button = {type = GDK_EXPOSE,
window = 0x555555776350, send_event = 0 '\000', time = 0, group = 0, button = 1366, mode = 44}, pad_axis = {
type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', time = 0, group = 0, index = 1366, mode = 44,
value = 4.6355709153593257e-310}, pad_group_mode = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
time = 0, group = 0, mode = 1366}}
child = <optimized out>
clipped_expose_region = 0x555555c9b4a0
children = <optimized out>
free_children = 0x0
i = <optimized out>
n_children = <optimized out>
l = <optimized out>
last_link = <optimized out>
__n = <optimized out>
__s = <optimized out>
__p = <optimized out>
#20 0x00007ffff7ede5df in gdk_window_process_updates_internal (window=window@entry=0x555555776350) at ../gtk/gdk/gdkwindow.c:4020
expose_region = 0x555555babe00
impl_class = 0x555555698820
toplevel = <optimized out>
display = <optimized out>
__func__ = "gdk_window_process_updates_internal"
#21 0x00007ffff7ede7fa in gdk_window_process_updates_with_mode (window=<optimized out>, recurse_mode=<optimized out>)
at ../gtk/gdk/gdkwindow.c:4215
impl_window = 0x555555776350
list = 0x555555c8e020
i = <optimized out>
list = <optimized out>
i = <optimized out>
__func__ = <optimized out>
_g_boolean_var_60 = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
impl_window = <optimized out>
#22 gdk_window_process_updates_with_mode (window=<optimized out>, recurse_mode=<optimized out>) at ../gtk/gdk/gdkwindow.c:4186
list = <optimized out>
i = <optimized out>
__func__ = "gdk_window_process_updates_with_mode"
impl_window = <optimized out>
#23 0x00007ffff7885732 in _g_closure_invoke_va (closure=0x5555557d97e0, return_value=0x0, instance=0x55555565e8b0,
args=0x7fffffffe0d0, n_params=<optimized out>, param_types=0x0) at ../glib/gobject/gclosure.c:897
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = 0
real_closure = 0x5555557d97c0
real_closure = <optimized out>
__func__ = <optimized out>
_g_boolean_var_50 = <optimized out>
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = <optimized out>
_g_boolean_var_51 = <optimized out>
cunion = <optimized out>
new_int = <optimized out>
old_int = <optimized out>
success = <optimized out>
tmp = <optimized out>
gaicae_oldval = <optimized out>
cunion = <optimized out>
new_int = <optimized out>
old_int = <optimized out>
success = <optimized out>
tmp = <optimized out>
gaicae_oldval = <optimized out>
#24 signal_emit_valist_unlocked (instance=instance@entry=0x55555565e8b0, signal_id=signal_id@entry=59, detail=detail@entry=0,
var_args=var_args@entry=0x7fffffffe0d0) at ../glib/gobject/gsignal.c:3424
return_accu = 0x0
accu = {g_type = 0, 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}}}
emission = {next = 0x0, instance = 0x55555565e8b0, ihint = {signal_id = 59, detail = 0,
run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 93824993839312}
instance_type = <optimized out>
emission_return = {g_type = 0, 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}}}
rtype = 4
static_scope = <optimized out>
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = 59, itype = 93824993248672, name = 0x7ffff7f40171 "paint", destroyed = 0, flags = 2, n_params = 0,
single_va_closure_is_valid = 1, single_va_closure_is_after = 0, param_types = 0x0, return_type = 4,
class_closure_bsa = 0x0, accumulator = 0x0, c_marshaller = 0x7ffff7869ca0 <g_cclosure_marshal_VOID__VOID>,
va_marshaller = 0x7ffff7862300 <g_cclosure_marshal_VOID__VOIDv>, emission_hooks = 0x0, single_va_closure = 0x1}
__func__ = "signal_emit_valist_unlocked"
#25 0x00007ffff7885842 in g_signal_emit_valist (instance=0x55555565e8b0, signal_id=59, detail=0,
var_args=var_args@entry=0x7fffffffe0d0) at ../glib/gobject/gsignal.c:3263
No locals.
#26 0x00007ffff7885904 in g_signal_emit (instance=instance@entry=0x55555565e8b0, signal_id=<optimized out>, detail=detail@entry=0)
at ../glib/gobject/gsignal.c:3583
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffe1b0, reg_save_area = 0x7fffffffe0f0}}
#27 0x00007ffff7ed4f49 in _gdk_frame_clock_emit_paint (frame_clock=0x55555565e8b0) at ../gtk/gdk/gdkframeclock.c:657
No locals.
#28 gdk_frame_clock_paint_idle (data=0x55555565e8b0) at ../gtk/gdk/gdkframeclockidle.c:597
clock = 0x55555565e8b0
clock_idle = 0x55555565e8b0
priv = 0x55555565e7c0
skip_to_resume_events = 0
timings = <optimized out>
__func__ = "gdk_frame_clock_paint_idle"
#29 0x00007ffff7ec0a70 in gdk_threads_dispatch (data=0x555555d2f950) at ../gtk/gdk/gdk.c:769
dispatch = 0x555555d2f950
ret = 0
#30 0x00007ffff790ff0a in g_timeout_dispatch (source=0x555555c8f980, callback=<optimized out>, user_data=<optimized out>)
at ../glib/glib/gmain.c:4989
timeout_source = 0x555555c8f980
again = <optimized out>
#31 0x00007ffff790eab9 in g_main_dispatch (context=0x55555569d210) at ../glib/glib/gmain.c:3344
dispatch = 0x7ffff790fee0 <g_timeout_dispatch>
prev_source = 0x0
begin_time_nsec = 24747613453552
was_in_call = 0
user_data = 0x555555d2f950
callback = 0x7ffff7ec0a40 <gdk_threads_dispatch>
cb_funcs = 0x7ffff79fe380 <g_source_callback_funcs>
cb_data = 0x555555c975e0
need_destroy = <optimized out>
source = 0x555555c8f980
current = 0x55555569d450
i = 0
__func__ = "g_main_dispatch"
#32 0x00007ffff79709e7 in g_main_context_dispatch_unlocked (context=0x55555569d210) at ../glib/glib/gmain.c:4152
No locals.
#33 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x55555569d210, block=block@entry=1, dispatch=dispatch@entry=1,
self=<optimized out>) at ../glib/glib/gmain.c:4217
max_priority = 120
timeout = 0
some_ready = 1
nfds = 5
allocated_nfds = <optimized out>
fds = 0x7fffc4000dc0
begin_time_nsec = 24747613416749
#34 0x00007ffff790dfc5 in g_main_context_iteration (context=context@entry=0x55555569d210, may_block=may_block@entry=1)
at ../glib/glib/gmain.c:4282
retval = <optimized out>
#35 0x00007ffff75a4c66 in g_application_run (application=0x55555568b3c0, argc=<optimized out>, argv=0x7fffffffe558)
at ../glib/gio/gapplication.c:2712
arguments = 0x555555732fb0
status = 0
context = 0x55555569d210
acquired_context = <optimized out>
__func__ = "g_application_run"
#36 0x0000555555588a13 in WayfirePanelApp::create (argc=1, argv=0x7fffffffe558) at ../wf-shell-0.8.1/src/panel/panel.cpp:418
No locals.
#37 main (argc=1, argv=0x7fffffffe558) at ../wf-shell-0.8.1/src/panel/panel.cpp:428
No locals.
=no_tid@entry=0) at pthread_kill.c:44
tid = <optimized out>
ret = 0
pd = <optimized out>
old_mask = {__val = {140737488345552}}
ret = <optimized out>
#1 0x00007ffff63bdeb3 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78
No locals.
#2 0x00007ffff6365a30 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
ret = <optimized out>
#3 0x00007ffff634d4c3 in __GI_abort () at abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {140737324119622, 93825000235728,
93825000235728, 0, 7, 0, 4, 47244640256, 0, 140737488345736, 18446744073709551432, 11, 93825000235712, 140737488345776,
140737324567982, 140737325876448}}, sa_flags = -991923712, sa_restorer = 0x7fffffffdab0}
#4 0x00007ffff634d3df in __assert_fail_base (fmt=0x7ffff64d8b68 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=assertion@entry=0x7ffff778c8a0 "CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&surface->ref_count)",
file=file@entry=0x7ffff7787317 "../cairo/src/cairo-surface.c", line=line@entry=938,
function=function@entry=0x7ffff779a500 <__PRETTY_FUNCTION__.13> "cairo_surface_reference") at assert.c:94
str = 0x555555cf62d0 "v"
total = 4096
#5 0x00007ffff635dc67 in __assert_fail (
assertion=assertion@entry=0x7ffff778c8a0 "CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&surface->ref_count)",
file=file@entry=0x7ffff7787317 "../cairo/src/cairo-surface.c", line=line@entry=938,
function=function@entry=0x7ffff779a500 <__PRETTY_FUNCTION__.13> "cairo_surface_reference") at assert.c:103
No locals.
#6 0x00007ffff76f92e2 in cairo_surface_reference (surface=<optimized out>) at ../cairo/src/cairo-surface.c:938
__PRETTY_FUNCTION__ = <optimized out>
#7 cairo_surface_reference (surface=<optimized out>) at ../cairo/src/cairo-surface.c:932
__PRETTY_FUNCTION__ = "cairo_surface_reference"
#8 0x00007ffff7f04615 in gdk_wayland_window_ref_cairo_surface (window=<optimized out>) at ../gtk/gdk/wayland/gdkwindow-wayland.c:1019
impl = 0x5555556e0e20
#9 0x00007ffff7edc248 in gdk_window_ref_impl_surface (window=0x555555776350) at ../gtk/gdk/gdkwindow.c:673
--Type <RET> for more, q to quit, c to continue without paging--ret
No locals.
#10 gdk_window_get_content (window=0x555555776350) at ../gtk/gdk/gdkwindow.c:2828
surface = <optimized out>
content = <optimized out>
surface = <optimized out>
content = <optimized out>
__func__ = <optimized out>
_g_boolean_var_44 = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#11 gdk_window_begin_paint_internal (window=0x555555776350, region=0x555555c9b4a0) at ../gtk/gdk/gdkwindow.c:2963
clip_box = {x = 0, y = 0, width = 1366, height = 44}
sy = 4.6355707158390173e-310
needs_surface = 0
surface_content = <optimized out>
impl_class = <optimized out>
sx = 4.635570883837147e-310
clip_box = <optimized out>
impl_class = <optimized out>
sx = <optimized out>
sy = <optimized out>
needs_surface = <optimized out>
surface_content = <optimized out>
__func__ = <optimized out>
context = <optimized out>
ww = <optimized out>
wh = <optimized out>
#12 gdk_window_begin_paint_internal (window=window@entry=0x555555776350, region=region@entry=0x555555c9b4a0)
at ../gtk/gdk/gdkwindow.c:2930
clip_box = <optimized out>
impl_class = <optimized out>
sx = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--c
sy = <optimized out>
needs_surface = <optimized out>
surface_content = <optimized out>
__func__ = "gdk_window_begin_paint_internal"
context = <optimized out>
ww = <optimized out>
wh = <optimized out>
#13 0x00007ffff7edc9c2 in gdk_window_begin_draw_frame (window=window@entry=0x555555776350, region=region@entry=0x555555c9b4a0)
at ../gtk/gdk/gdkwindow.c:3257
context = <optimized out>
impl_class = <optimized out>
__func__ = "gdk_window_begin_draw_frame"
#14 0x00007ffff6d565ec in gtk_widget_render (widget=0x55555580afe0, window=0x555555776350, region=0x555555c9b4a0)
at ../gtk/gtk/gtkwidget.c:17591
priv = <optimized out>
context = <optimized out>
do_clip = <optimized out>
cr = <optimized out>
x = 21845
y = 1434496992
is_double_buffered = <optimized out>
#15 0x00007ffff6be661f in gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1844
grab_widget = 0x555555b078e0
window_group = 0x555555bec3e0
rewritten_event = <optimized out>
device = <optimized out>
tmp_list = <optimized out>
event_widget = 0x55555580afe0
topmost_widget = <optimized out>
event_widget = <optimized out>
grab_widget = <optimized out>
topmost_widget = <optimized out>
window_group = <optimized out>
rewritten_event = <optimized out>
device = <optimized out>
tmp_list = <optimized out>
cleanup = <optimized out>
__func__ = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
mnemonics_visible = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#16 gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1691
event_widget = <optimized out>
grab_widget = 0x0
topmost_widget = 0x0
window_group = <optimized out>
rewritten_event = 0x0
device = <optimized out>
tmp_list = <optimized out>
cleanup = <optimized out>
__func__ = "gtk_main_do_event"
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
mnemonics_visible = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#17 0x00007ffff7ec73c7 in _gdk_event_emit (event=0x7fffffffdd80) at ../gtk/gdk/gdkevents.c:73
No locals.
#18 _gdk_event_emit (event=0x7fffffffdd80) at ../gtk/gdk/gdkevents.c:67
No locals.
#19 0x00007ffff7ed9dc2 in _gdk_window_process_updates_recurse_helper (window=0x555555776350, expose_region=<optimized out>)
at ../gtk/gdk/gdkwindow.c:3874
event = {type = GDK_EXPOSE, any = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000'}, expose = {
type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', area = {x = 0, y = 0, width = 1366, height = 44},
region = 0x555555c9b4a0, count = 0}, visibility = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
state = GDK_VISIBILITY_UNOBSCURED}, motion = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
time = 0, x = 2.898646250458562e-311, y = 6.9531436082580817e-310, axes = 0x555555c9b4a0, state = 0, is_hint = 21845,
device = 0x555555babe00, x_root = 6.9533558074065506e-310, y_root = 6.9533491253060408e-310}, button = {
type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', time = 0, x = 2.898646250458562e-311,
y = 6.9531436082580817e-310, axes = 0x555555c9b4a0, state = 0, button = 21845, device = 0x555555babe00,
x_root = 6.9533558074065506e-310, y_root = 6.9533491253060408e-310}, touch = {type = GDK_EXPOSE, window = 0x555555776350,
send_event = 0 '\000', time = 0, x = 2.898646250458562e-311, y = 6.9531436082580817e-310, axes = 0x555555c9b4a0,
state = 0, sequence = 0x555555babe00, emulating_pointer = -8672,
device = 0x7ffff7f028ac <gdk_wayland_window_invalidate_for_new_frame+44>, x_root = -nan(0xffffffffffff8),
y_root = 4.6355709132194286e-310}, scroll = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', time = 0,
x = 2.898646250458562e-311, y = 6.9531436082580817e-310, state = 1439282336, direction = 21845, device = 0x555500000000,
x_root = 4.6355708669092723e-310, y_root = 6.9533558074065506e-310, delta_x = 6.9533491253060408e-310,
delta_y = -nan(0xffffffffffff8), is_stop = 0}, key = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
time = 0, state = 0, keyval = 1366, length = 44, string = 0x555555c9b4a0 "\001", hardware_keycode = 0, group = 0 '\000',
is_modifier = 0}, crossing = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
subwindow = 0x55600000000, time = 44, x = 4.6355709153593257e-310, y = 4.6354998053636374e-310,
x_root = 4.6355708669092723e-310, y_root = 6.9533558074065506e-310, mode = 4159711404, detail = 32767, focus = -8,
state = 4294967295}, focus_change = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', in = 21946},
configure = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', x = 0, y = 0, width = 1366, height = 44},
property = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', atom = 0x55600000000, time = 44,
state = 32767}, selection = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
selection = 0x55600000000, target = 0x7fff0000002c, property = 0x555555c9b4a0, time = 0, requestor = 0x555555babe00},
owner_change = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', owner = 0x55600000000,
reason = (unknown: 0x2c), selection = 0x555555c9b4a0, time = 0, selection_time = 21845}, proximity = {type = GDK_EXPOSE,
window = 0x555555776350, send_event = 0 '\000', time = 0, device = 0x55600000000}, dnd = {type = GDK_EXPOSE,
window = 0x555555776350, send_event = 0 '\000', context = 0x55600000000, time = 44, x_root = 32767, y_root = 0},
window_state = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', changed_mask = 0, new_window_state = 0},
setting = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', action = GDK_SETTING_ACTION_NEW,
name = 0x55600000000 <error: Cannot access memory at address 0x55600000000>}, grab_broken = {type = GDK_EXPOSE,
window = 0x555555776350, send_event = 0 '\000', keyboard = 0, implicit = 0, grab_window = 0x7fff0000002c},
touchpad_swipe = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', phase = -66 '\276',
n_fingers = -70 '\272', time = 0, x = 2.898646250458562e-311, y = 6.9531436082580817e-310, dx = 4.6355709153593257e-310,
dy = 4.6354998053636374e-310, x_root = 4.6355708669092723e-310, y_root = 6.9533558074065506e-310, state = 4159711404},
touchpad_pinch = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', phase = -66 '\276',
n_fingers = -70 '\272', time = 0, x = 2.898646250458562e-311, y = 6.9531436082580817e-310, dx = 4.6355709153593257e-310,
dy = 4.6354998053636374e-310, angle_delta = 4.6355708669092723e-310, scale = 6.9533558074065506e-310,
x_root = 6.9533491253060408e-310, y_root = -nan(0xffffffffffff8), state = 1439239024}, pad_button = {type = GDK_EXPOSE,
window = 0x555555776350, send_event = 0 '\000', time = 0, group = 0, button = 1366, mode = 44}, pad_axis = {
type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000', time = 0, group = 0, index = 1366, mode = 44,
value = 4.6355709153593257e-310}, pad_group_mode = {type = GDK_EXPOSE, window = 0x555555776350, send_event = 0 '\000',
time = 0, group = 0, mode = 1366}}
child = <optimized out>
clipped_expose_region = 0x555555c9b4a0
children = <optimized out>
free_children = 0x0
i = <optimized out>
n_children = <optimized out>
l = <optimized out>
last_link = <optimized out>
__n = <optimized out>
__s = <optimized out>
__p = <optimized out>
#20 0x00007ffff7ede5df in gdk_window_process_updates_internal (window=window@entry=0x555555776350) at ../gtk/gdk/gdkwindow.c:4020
expose_region = 0x555555babe00
impl_class = 0x555555698820
toplevel = <optimized out>
display = <optimized out>
__func__ = "gdk_window_process_updates_internal"
#21 0x00007ffff7ede7fa in gdk_window_process_updates_with_mode (window=<optimized out>, recurse_mode=<optimized out>)
at ../gtk/gdk/gdkwindow.c:4215
impl_window = 0x555555776350
list = 0x555555c8e020
i = <optimized out>
list = <optimized out>
i = <optimized out>
__func__ = <optimized out>
_g_boolean_var_60 = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
impl_window = <optimized out>
#22 gdk_window_process_updates_with_mode (window=<optimized out>, recurse_mode=<optimized out>) at ../gtk/gdk/gdkwindow.c:4186
list = <optimized out>
i = <optimized out>
__func__ = "gdk_window_process_updates_with_mode"
impl_window = <optimized out>
#23 0x00007ffff7885732 in _g_closure_invoke_va (closure=0x5555557d97e0, return_value=0x0, instance=0x55555565e8b0,
args=0x7fffffffe0d0, n_params=<optimized out>, param_types=0x0) at ../glib/gobject/gclosure.c:897
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = 0
real_closure = 0x5555557d97c0
real_closure = <optimized out>
__func__ = <optimized out>
_g_boolean_var_50 = <optimized out>
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = <optimized out>
_g_boolean_var_51 = <optimized out>
cunion = <optimized out>
new_int = <optimized out>
old_int = <optimized out>
success = <optimized out>
tmp = <optimized out>
gaicae_oldval = <optimized out>
cunion = <optimized out>
new_int = <optimized out>
old_int = <optimized out>
success = <optimized out>
tmp = <optimized out>
gaicae_oldval = <optimized out>
#24 signal_emit_valist_unlocked (instance=instance@entry=0x55555565e8b0, signal_id=signal_id@entry=59, detail=detail@entry=0,
var_args=var_args@entry=0x7fffffffe0d0) at ../glib/gobject/gsignal.c:3424
return_accu = 0x0
accu = {g_type = 0, 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}}}
emission = {next = 0x0, instance = 0x55555565e8b0, ihint = {signal_id = 59, detail = 0,
run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 93824993839312}
instance_type = <optimized out>
emission_return = {g_type = 0, 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}}}
rtype = 4
static_scope = <optimized out>
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = 59, itype = 93824993248672, name = 0x7ffff7f40171 "paint", destroyed = 0, flags = 2, n_params = 0,
single_va_closure_is_valid = 1, single_va_closure_is_after = 0, param_types = 0x0, return_type = 4,
class_closure_bsa = 0x0, accumulator = 0x0, c_marshaller = 0x7ffff7869ca0 <g_cclosure_marshal_VOID__VOID>,
va_marshaller = 0x7ffff7862300 <g_cclosure_marshal_VOID__VOIDv>, emission_hooks = 0x0, single_va_closure = 0x1}
__func__ = "signal_emit_valist_unlocked"
#25 0x00007ffff7885842 in g_signal_emit_valist (instance=0x55555565e8b0, signal_id=59, detail=0,
var_args=var_args@entry=0x7fffffffe0d0) at ../glib/gobject/gsignal.c:3263
No locals.
#26 0x00007ffff7885904 in g_signal_emit (instance=instance@entry=0x55555565e8b0, signal_id=<optimized out>, detail=detail@entry=0)
at ../glib/gobject/gsignal.c:3583
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffe1b0, reg_save_area = 0x7fffffffe0f0}}
#27 0x00007ffff7ed4f49 in _gdk_frame_clock_emit_paint (frame_clock=0x55555565e8b0) at ../gtk/gdk/gdkframeclock.c:657
No locals.
#28 gdk_frame_clock_paint_idle (data=0x55555565e8b0) at ../gtk/gdk/gdkframeclockidle.c:597
clock = 0x55555565e8b0
clock_idle = 0x55555565e8b0
priv = 0x55555565e7c0
skip_to_resume_events = 0
timings = <optimized out>
__func__ = "gdk_frame_clock_paint_idle"
#29 0x00007ffff7ec0a70 in gdk_threads_dispatch (data=0x555555d2f950) at ../gtk/gdk/gdk.c:769
dispatch = 0x555555d2f950
ret = 0
#30 0x00007ffff790ff0a in g_timeout_dispatch (source=0x555555c8f980, callback=<optimized out>, user_data=<optimized out>)
at ../glib/glib/gmain.c:4989
timeout_source = 0x555555c8f980
again = <optimized out>
#31 0x00007ffff790eab9 in g_main_dispatch (context=0x55555569d210) at ../glib/glib/gmain.c:3344
dispatch = 0x7ffff790fee0 <g_timeout_dispatch>
prev_source = 0x0
begin_time_nsec = 24747613453552
was_in_call = 0
user_data = 0x555555d2f950
callback = 0x7ffff7ec0a40 <gdk_threads_dispatch>
cb_funcs = 0x7ffff79fe380 <g_source_callback_funcs>
cb_data = 0x555555c975e0
need_destroy = <optimized out>
source = 0x555555c8f980
current = 0x55555569d450
i = 0
__func__ = "g_main_dispatch"
#32 0x00007ffff79709e7 in g_main_context_dispatch_unlocked (context=0x55555569d210) at ../glib/glib/gmain.c:4152
No locals.
#33 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x55555569d210, block=block@entry=1, dispatch=dispatch@entry=1,
self=<optimized out>) at ../glib/glib/gmain.c:4217
max_priority = 120
timeout = 0
some_ready = 1
nfds = 5
allocated_nfds = <optimized out>
fds = 0x7fffc4000dc0
begin_time_nsec = 24747613416749
#34 0x00007ffff790dfc5 in g_main_context_iteration (context=context@entry=0x55555569d210, may_block=may_block@entry=1)
at ../glib/glib/gmain.c:4282
retval = <optimized out>
#35 0x00007ffff75a4c66 in g_application_run (application=0x55555568b3c0, argc=<optimized out>, argv=0x7fffffffe558)
at ../glib/gio/gapplication.c:2712
arguments = 0x555555732fb0
status = 0
context = 0x55555569d210
acquired_context = <optimized out>
__func__ = "g_application_run"
#36 0x0000555555588a13 in WayfirePanelApp::create (argc=1, argv=0x7fffffffe558) at ../wf-shell-0.8.1/src/panel/panel.cpp:418
No locals.
#37 main (argc=1, argv=0x7fffffffe558) at ../wf-shell-0.8.1/src/panel/panel.cpp:428
No locals.
The device is running Wayfire built from main on top of latest LXQt from the Arch Linux repos.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the crash in wf-panel using the launcher widget: launch a notification-capable app, receive a notification, and switch apps immediately. Start with the gdb backtrace around cairo_surface_reference, gdk_window_get_content, and GTK rendering, since no project file is named. Done means the panel no longer aborts during this sequence.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100