Xwayland sometimes crashes when entering or exiting a Zoom meeting
Hi,
This issue may be a bit hard to debug as it does not happen every time, but here is all the information I could gather about it.
Last time it happened right when entering a Zoom meeting, just before the meeting's window appeared on screen.
This is the backtrace:
#0 0x00007eff5a1c6355 in raise () from /usr/lib/libc.so.6
#1 0x00007eff5a1af853 in abort () from /usr/lib/libc.so.6
#2 0x0000557cf760403a in OsAbort () at ../xorg-server-1.20.8/os/utils.c:1351
#3 0x0000557cf760755c in AbortServer () at ../xorg-server-1.20.8/os/log.c:879
#4 FatalError (f=f@entry=0x557cf7737970 "Caught signal %d (%s). Server aborting\n") at ../xorg-server-1.20.8/os/log.c:1017
#5 0x0000557cf760b97b in OsSigHandler (unused=<optimized out>, sip=0x7ffc1dffb830, signo=11) at ../xorg-server-1.20.8/os/osinit.c:156
#6 OsSigHandler (signo=11, sip=0x7ffc1dffb830, unused=<optimized out>) at ../xorg-server-1.20.8/os/osinit.c:110
#7 <signal handler called>
#8 0x0000557cf76c8854 in dixDestroyPixmap (value=0x557cf91893c0, pid=73400381) at ../xorg-server-1.20.8/dix/dispatch.c:1389
#9 0x0000557cf76a52ce in doFreeResource (res=0x557cf8b48290, skip=0) at ../xorg-server-1.20.8/dix/resource.c:880
#10 0x0000557cf76a5e7f in FreeResource (id=73400381, skipDeleteFuncType=0) at ../xorg-server-1.20.8/dix/resource.c:910
#11 0x0000557cf76c927e in ProcFreePixmap (client=0x557cf9204c40) at ../xorg-server-1.20.8/dix/dispatch.c:1470
#12 0x0000557cf76cd136 in Dispatch () at ../xorg-server-1.20.8/dix/dispatch.c:478
#13 0x0000557cf75cff0d in dix_main (envp=<optimized out>, argv=0x7ffc1dffc0d8, argc=6) at ../xorg-server-1.20.8/dix/main.c:276
#14 main (argc=6, argv=0x7ffc1dffc0d8, envp=<optimized out>) at ../xorg-server-1.20.8/dix/stubmain.c:34
This is the state of the registers, and the the assembly code being executed:
rax 0x4600000000 300647710720
rdi 0x557cf91893c0 93995243443136
0x557cf76c8850 <dixDestroyPixmap> mov 0x10(%rdi),%rax
0x557cf76c8854 <dixDestroyPixmap+4> jmpq *0x310(%rax)
The address being accessed is 0x4600000310
. The problem is the drawable.pScreen
member of PixmapPtr
(although the whole drawable
barely makes any sense):
(gdb) print *pPixmap
$2 = {drawable = {type = 160 '\240', class = 65 'A', depth = 22 '\026', bitsPerPixel = 249 '\371', id = 21884, x = 12304, y = -2084, width = 21884, height = 0, pScreen = 0x4600000000, serialNumber = 93991064305664}, devPrivates = 0x557c00000000, refcnt = 1920, devKind = 32764, devPrivate = {ptr = 0x1e, val = 30, uval = 30, fptr = 0x1e}, screen_x = 25568, screen_y = 22713, usage_hint = 32511, master_pixmap = 0xc004}
Please ask for any other information that may be useful.
Thanks.
Software versions:
linux 5.7.2
mesa 20.1.1
Qt 5.15.0
kwin 5.19.1
kwayland-server 5.19.1
kwayland 5.71.0
disman 0.519.0.r0.g9edf413
kdisplay 5.19.0.beta.0.r2.ga0504e4
libwayland 1.18.0
wayland-egl 18.1.0
xwayland 1.20.8
libxkbcommon 0.10.0
libinput 1.15.5
libdrm 2.4.102
libxcb 1.14
libx11 1.6.9