Intermittent crash when a client exits (usually around the same time the display server becomes inactive)
I have an instance of Weston that I use as a greeter. It seems that sometimes when a client quits (I do have the Zoom animation turned on for windowing events) at the same time it becomes inactive (and it's not 100% replicateable) Weston crashes.
I had a streak where it crashed 5 times in a row, (after a restart too) but then all of a sudden it's much more rare, so it must be some odd timing thing
Below is a stack trace. I hope it is helpful
#0 0x00007fcbb99d99b8 in wl_list_remove (elm=elm@entry=0x55eb4e8a4668)
--Type <RET> for more, q to quit, c to continue without paging--
at ../src/wayland-util.c:55
55 ../src/wayland-util.c: No such file or directory.
(gdb) bt full
#0 0x00007fcbb99d99b8 in wl_list_remove (elm=elm@entry=0x55eb4e8a4668)
at ../src/wayland-util.c:55
No locals.
#1 0x00007fcbb99f80ee in weston_view_destroy (view=0x55eb4e8a4630)
at ../libweston/compositor.c:2285
pnode = <optimized out>
pntmp = 0x55eb4e8a4640
__PRETTY_FUNCTION__ = "weston_view_destroy"
#2 0x00007fcbb01c0411 in desktop_shell_destroy_surface (shsurf=0x55eb4e7ad210)
at ../desktop-shell/shell.c:267
shsurf_child = 0x55eb4e7ad200
tmp = 0x55eb4e7ad200
#3 0x00007fcbb01b0216 in weston_desktop_xdg_toplevel_destroy (
toplevel=0x55eb4e8411a0) at ../libweston-desktop/xdg-shell.c:797
No locals.
#4 weston_desktop_xdg_surface_destroy (dsurface=<optimized out>,
user_data=0x55eb4e8411a0) at ../libweston-desktop/xdg-shell.c:1412
surface = 0x55eb4e8411a0
configure = <optimized out>
temp = <optimized out>
#5 0x00007fcbb01aeb6a in weston_desktop_surface_destroy (
surface=0x55eb4e9345a0) at ../libweston-desktop/surface.c:144
view = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--c
next_view = <optimized out>
child = <optimized out>
next_child = <optimized out>
#6 0x00007fcbb01ad9c6 in wl_signal_emit (data=0x55eb4e913bb0, signal=0x55eb4e913be8) at /opt/include/wayland-server-core.h:481
l = <optimized out>
next = 0x55eb4e913be8
l = <optimized out>
next = <optimized out>
#7 weston_desktop_client_destroy (client=0x55eb4e913bb0) at ../libweston-desktop/client.c:60
list = 0x55eb4e913bc8
link = <optimized out>
tmp = <optimized out>
__PRETTY_FUNCTION__ = "weston_desktop_client_destroy"
#8 0x00007fcbb99c3d48 in destroy_resource (element=0x55eb4e7da810, data=<optimized out>, flags=0) at ../src/wayland-server.c:727
resource = 0x55eb4e7da810
#9 0x00007fcbb99c726c in for_each_helper (entries=entries@entry=0x55eb4e9ebb00, func=func@entry=0x7fcbb99c3cea <destroy_resource>, data=data@entry=0x7ffde7b3a6bc) at ../src/wayland-util.c:376
idx = 17
ret = WL_ITERATOR_CONTINUE
entry = {next = <optimized out>, data = <optimized out>}
start = 0x55eb4e82f200
count = 25
#10 0x00007fcbb99c764d in wl_map_for_each (map=map@entry=0x55eb4e9ebb00, func=func@entry=0x7fcbb99c3cea <destroy_resource>, data=data@entry=0x7ffde7b3a6bc) at ../src/wayland-util.c:390
ret = <optimized out>
#11 0x00007fcbb99c3e70 in wl_client_destroy (client=client@entry=0x55eb4e9ebad0) at ../src/wayland-server.c:886
serial = 0
#12 0x00007fcbb99c3ef5 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x55eb4e9ebad0) at ../src/wayland-server.c:342
client = 0x55eb4e9ebad0
connection = <optimized out>
resource = <optimized out>
object = <optimized out>
closure = <optimized out>
message = <optimized out>
p = {1307073008, 21995}
resource_flags = <optimized out>
opcode = <optimized out>
size = <optimized out>
since = <optimized out>
len = <optimized out>
#13 0x00007fcbb99c5770 in wl_event_loop_dispatch (loop=0x55eb4de5ff60, timeout=timeout@entry=-1) at ../src/event-loop.c:1027
ep = {{events = 17, data = {ptr = 0x55eb4e881550, fd = 1317541200, u32 = 1317541200, u64 = 94469123216720}}, {events = 1, data = {ptr = 0x55eb4e7f3240, fd = 1316958784, u32 = 1316958784, u64 = 94469122634304}}, {events = 1, data = {ptr = 0x55eb4e8055e0, fd = 1317033440, u32 = 1317033440, u64 = 94469122708960}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 2, data = {ptr = 0xe00000000, fd = 0, u32 = 0, u64 = 60129542144}}, {events = 2147483648, data = {ptr = 0x6e0, fd = 1760, u32 = 1760, u64 = 1760}}, {events = 1, data = {ptr = 0x4000000001, fd = 1, u32 = 1, u64 = 274877906945}}, {events = 0, data = {ptr = 0x55eb4e95ae60, fd = 1318432352, u32 = 1318432352, u64 = 94469124107872}}, {events = 1318444664, data = {ptr = 0xb99c5b54000055eb, fd = 21995, u32 = 21995, u64 = 13374665409718932971}}, {events = 32715, data = {ptr = 0x1, fd = 1, u32 = 1, u64 = 1}}, {events = 24, data = {ptr = 0x4e95c5dc00000000, fd = 0, u32 = 0, u64 = 5662649655171743744}}, {events = 21995, data = {ptr = 0x18, fd = 24, u32 = 24, u64 = 24}}, {events = 1317130512, data = {ptr = 0xb01c292f000055eb, fd = 21995, u32 = 21995, u64 = 12690063131863438827}}, {events = 32715, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x7ffde7b3a810, fd = -407656432, u32 = 3887310864, u64 = 140728490764304}}, {events = 1, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x1400000000, fd = 0, u32 = 0, u64 = 85899345920}}, {events = 0, data = {ptr = 0x100000001, fd = 1, u32 = 1, u64 = 4294967297}}, {events = 23, data = {ptr = 0xb9ae7b4100000000, fd = 0, u32 = 0, u64 = 13379767062067412992}}, {events = 32715, data = {ptr = 0x400, fd = 1024, u32 = 1024, u64 = 1024}}, {events = 1317040336, data = {ptr = 0xe7b4794a000055eb, fd = 21995, u32 = 21995, u64 = 16696103077303834091}}, {events = 32765, data = {ptr = 0x7fcbb01c0ec8 <fade_startup_timeout>, fd = -1340338488, u32 = 2954628808, u64 = 140512809717448}}, {events = 3887364426, data = {ptr = 0x493e000007ffd, fd = 32765, u32 = 32765, u64 = 1288490188832765}}, {events = 0, data = {ptr = 0x7ffde7b3a910, fd = -407656176, u32 = 3887311120, u64 = 140728490764560}}, {events = 3887313000, data = {ptr = 0xe7b3a9cd00007ffd, fd = 32765, u32 = 32765, u64 = 16695874941525983229}}, {events = 32765, data = {ptr = 0x7fcbb9bfdc50, fd = -1178608560, u32 = 3116358736, u64 = 140512971447376}}, {events = 1, data = {ptr = 0xb9ae7b4100000000, fd = 0, u32 = 0, u64 = 13379767062067412992}}, {events = 32715, data = {ptr = 0x55eb4e7f4258, fd = 1316962904, u32 = 1316962904, u64 = 94469122638424}}, {events = 1306941240, data = {ptr = 0x4e9ebad0000055eb, fd = 21995, u32 = 21995, u64 = 5665170783794648555}}, {events = 21995, data = {ptr = 0x55eb4e9270b0, fd = 1318219952, u32 = 1318219952, u64 = 94469123895472}}}
source = <optimized out>
i = 0
count = <optimized out>
has_timers = <optimized out>
#14 0x00007fcbb99c4224 in wl_display_run (display=display@entry=0x55eb4de656f0) at ../src/wayland-server.c:1408
No locals.
#15 0x00007fcbb9bf415a in wet_main (argc=<optimized out>, argv=0x7ffde7b3b068, test_data=0x0) at ../compositor/main.c:3565
ret = 1
cmdline = <optimized out>
display = 0x55eb4de656f0
signals = {0x55eb4de5c6d0, 0x55eb4de5c2e0, 0x55eb4de5c200, 0x55eb4de5c010}
loop = <optimized out>
i = <optimized out>
fd = <optimized out>
backend = 0x55eb4de5dd90 "drm-backend.so"
shell = 0x55eb4e7dc590 "desktop-shell.so"
xwayland = false
modules = 0x55eb4e7e6500 ""
option_modules = 0x0
log = 0x55eb4de60900 "/var/log/waylandloginmanager/loginmanagerdisplays/loginmanagerdisplay_seat0.log"
log_scopes = 0x0
flight_rec_scopes = 0x7fcbb9bf8dc2 "log,drm-backend"
server_socket = <optimized out>
idle_time = 300
help = 0
socket_name = 0x55eb4de5ddb0 "loginmanagerdisplay_seat0"
version = 0
noconfig = 0
debug_protocol = 0
numlock_on = false
config_file = 0x55eb4de5e910 "/etc/loginmanagerdisplay//loginmanagerdisplay.ini"
config = <optimized out>
section = <optimized out>
primary_client = <optimized out>
primary_client_destroyed = {link = {prev = 0x0, next = 0x1}, notify = 0x0}
seat = <optimized out>
wet = {compositor = 0x55eb4de69510, config = 0x55eb4de677a0, parsed_options = 0x0, drm_use_current_mode = false, heads_changed_listener = {link = {prev = 0x55eb4de69910, next = 0x55eb4de69910}, notify = 0x7fcbb9bf12c7 <drm_heads_changed>}, simple_output_configure = 0x0, init_failed = false, layoutput_list = {prev = 0x55eb4e7b2a18, next = 0x55eb4e7b2a18}, child_process_list = {prev = 0x55eb4e7b5f60, next = 0x55eb4e7b66e0}, autolaunch_pid = -1, autolaunch_watch = false, use_color_manager = false}
log_ctx = 0x55eb4de657e0
logger = 0x55eb4de65aa0
flight_rec = 0x55eb4de65ae0
mask = {__val = {512, 0 <repeats 15 times>}}
wait_for_debugger = false
protologger = 0x55eb4de69ec0
core_options = {{type = WESTON_OPTION_STRING, name = 0x7fcbb9bf8dca "backend", short_name = 66 'B', data = 0x7ffde7b3a9e8}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf8018 "shell", short_name = 0 '\000', data = 0x7ffde7b3a9f0}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf767e "socket", short_name = 83 'S', data = 0x7ffde7b3aa20}, {type = WESTON_OPTION_INTEGER, name = 0x7fcbb9bf801e "idle-time", short_name = 105 'i', data = 0x7ffde7b3a9d0}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf8028 "xwayland", short_name = 0 '\000', data = 0x7ffde7b3a9cd}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf8031 "modules", short_name = 0 '\000', data = 0x7ffde7b3aa00}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf8039 "log", short_name = 0 '\000', data = 0x7ffde7b3aa08}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf803d "help", short_name = 104 'h', data = 0x7ffde7b3a9d4}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf8042 "version", short_name = 0 '\000', data = 0x7ffde7b3a9d8}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf804a "no-config", short_name = 0 '\000', data = 0x7ffde7b3a9dc}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf804d "config", short_name = 99 'c', data = 0x7ffde7b3aa28}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf8054 "wait-for-debugger", short_name = 0 '\000', data = 0x7ffde7b3a9ce}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf8066 "debug", short_name = 0 '\000', data = 0x7ffde7b3a9e0}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf806c "logger-scopes", short_name = 108 'l', data = 0x7ffde7b3aa10}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf807a "flight-rec-scopes", short_name = 102 'f', data = 0x7ffde7b3aa18}}
#16 0x00007fcbb9a48d0a in __libc_start_main (main=0x55eb4c17f050 <main>, argc=5, argv=0x7ffde7b3b068, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffde7b3b058) at ../csu/libc-start.c:308
self = <optimized out>
result = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 1906401613501594468, 94469082312800, 0, 0, 0, 5645738642457394020, 5635425129880648548}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x5, 0x7ffde7b3b068}, data = {prev = 0x0, cleanup = 0x0, canceltype = 5}}}
not_first_call = <optimized out>
#17 0x000055eb4c17f08a in _start ()
Edited by n3rdopolis