Crash xwayland
With XWayland 1.20.4 on Debian. It's pretty obvious something is calling wl_callback_destroy on a NULL pointer :
Program terminated with signal SIGABRT, Aborted.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
[Current thread is 1 (Thread 0x7f05f5e8ba80 (LWP 2121))]
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007f05f69bc535 in __GI_abort () at abort.c:79
#2 0x0000561c16b110ea in OsAbort () at ../../../../os/utils.c:1351
#3 0x0000561c16b16c03 in AbortServer () at ../../../../os/log.c:879
#4 0x0000561c16b17a69 in FatalError (f=f@entry=0x561c16b3b0d0 "Caught signal %d (%s). Server aborting\n") at ../../../../os/log.c:1017
#5 0x0000561c16b0e501 in OsSigHandler (unused=<optimized out>, sip=<optimized out>, signo=11) at ../../../../os/osinit.c:156
#6 OsSigHandler (signo=11, sip=<optimized out>, unused=<optimized out>) at ../../../../os/osinit.c:110
#7 <signal handler called>
#8 0x00007f05f78cebe1 in wl_proxy_destroy (proxy=0x0) at ../src/wayland-client.c:523
#9 0x0000561c169b8366 in wl_callback_destroy (wl_callback=<optimized out>) at /usr/include/wayland-client-protocol.h:1154
#10 xwl_present_sync_callback (data=0x561c18e5b330, callback=<optimized out>, time=<optimized out>) at ../../../../../hw/xwayland/xwayland-present.c:284
#11 0x00007f05f68bb8ee in ffi_call_unix64 () from /usr/lib/x86_64-linux-gnu/libffi.so.6
#12 0x00007f05f68bb2bf in ffi_call () from /usr/lib/x86_64-linux-gnu/libffi.so.6
#13 0x00007f05f78d228d in wl_closure_invoke (closure=closure@entry=0x561c18d56bb0, flags=flags@entry=1, target=<optimized out>, target@entry=0x561c18e0b380, opcode=opcode@entry=0,
data=<optimized out>) at ../src/connection.c:1006
#14 0x00007f05f78ceac9 in dispatch_event (display=display@entry=0x561c186f2ff0, queue=<optimized out>) at ../src/wayland-client.c:1427
#15 0x00007f05f78cff94 in dispatch_queue (queue=0x561c186f30b8, display=0x561c186f2ff0) at ../src/wayland-client.c:1573
#16 wl_display_dispatch_queue_pending (display=0x561c186f2ff0, queue=0x561c186f30b8) at ../src/wayland-client.c:1815
#17 0x00007f05f78cffec in wl_display_dispatch_pending (display=<optimized out>) at ../src/wayland-client.c:1878
#18 0x0000561c169adbdb in xwl_read_events (xwl_screen=0x561c186ee450) at ../../../../../hw/xwayland/xwayland.c:826
#19 0x0000561c16b0eeb1 in ospoll_wait (ospoll=0x561c186e38f0, timeout=<optimized out>) at ../../../../os/ospoll.c:651
#20 0x0000561c16b07ed3 in WaitForSomething (are_ready=0) at ../../../../os/WaitFor.c:208
#21 0x0000561c16ad831c in Dispatch () at ../../../../include/list.h:220
#22 0x0000561c16adc516 in dix_main (argc=12, argv=0x7ffe5b3c48a8, envp=<optimized out>) at ../../../../dix/main.c:276
#23 0x00007f05f69be09b in __libc_start_main (main=0x561c169ad1c0 <main>, argc=12, argv=0x7ffe5b3c48a8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7ffe5b3c4898) at ../csu/libc-start.c:308
#24 0x0000561c169ad1fa in _start ()