WayfireWM / WayfireWM/wf-shell

Panel crashes after immediately switching apps via launchers widget

Open
#267 0 comments 0 reactions 0 assignees View on GitHub

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:

  1. launch app that can give notifications
  2. receive notification
  3. 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.