qtile: [Wayland] Segmentation faults after the upgrade to wlroots 0.16
The issue:
After the upgrade to wlroots 0.16 was merged, Qtile started crashing regularly on both my systems, at least once or twice a day. The crashes happen on various actions, like closing or opening windows, or even just clicking a link in qutebrowser.
In my system journal I found that it appears to be a segmentation fault in wlroots. So I modified my wlroots to include debug symbols, and I got the below stacktraces (with coredumpctl debug
and then bt full
in gdb) from a few of those crashes.
#0 0x00007fb35dea15c3 in scene_node_get_root (node=node@entry=0x30f8c20) at ../types/scene/wlr_scene.c:50
tree = 0xa1
#1 0x00007fb35dea2e97 in wlr_scene_node_destroy (node=0x30f8c20) at ../types/scene/wlr_scene.c:94
scene = <optimized out>
__PRETTY_FUNCTION__ = "wlr_scene_node_destroy"
#2 0x00007fb35df5caef in _cffi_f_wlr_scene_node_destroy () from /nix/store/vwqgwq7wg6kxijlknpj4fa925zinmdgs-python3-3.10.12-env/lib/python3.10/site-packages/wlroots/_ffi.abi3.so
No symbol table info available.
#3 0x00007fb360bd7b35 in cfunction_vectorcall_O (func=<optimized out>, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/methodobject.c:516
tstate = 0x1c0bd10
nargs = 1
meth = <optimized out>
result = <optimized out>
#0 0x00007f4a0ecbd5c3 in scene_node_get_root (node=node@entry=0x2418500) at ../types/scene/wlr_scene.c:50
tree = 0x81
#1 0x00007f4a0ecbee97 in wlr_scene_node_destroy (node=0x2418500) at ../types/scene/wlr_scene.c:94
scene = <optimized out>
__PRETTY_FUNCTION__ = "wlr_scene_node_destroy"
#2 0x00007f4a0ed78aef in _cffi_f_wlr_scene_node_destroy () from /nix/store/vwqgwq7wg6kxijlknpj4fa925zinmdgs-python3-3.10.12-env/lib/python3.10/site-packages/wlroots/_ffi.abi3.so
No symbol table info available.
#3 0x00007f4a119d7b35 in cfunction_vectorcall_O (func=<optimized out>, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/methodobject.c:516
tstate = 0x493d10
nargs = 1
meth = <optimized out>
result = <optimized out>
#0 0x00007fccd054b83d in pixman_region32_copy (dst=0x7ffeeeff91d0, src=0x346bf08) at /build/pixman-0.42.2/pixman/pixman-region.c:518
No locals.
#1 0x00007fccd054bc92 in pixman_region32_union (new_reg=<optimized out>, reg1=<optimized out>, reg2=<optimized out>) at /build/pixman-0.42.2/pixman/pixman-region.c:1399
No locals.
#2 0x00007fcccf5ef4af in scene_node_visibility (node=node@entry=0x346beb0, visible=visible@entry=0x7ffeeeff91d0) at ../types/scene/wlr_scene.c:415
No locals.
#3 0x00007fcccf5ef4d1 in scene_node_visibility (node=node@entry=0x2d2e980, visible=visible@entry=0x7ffeeeff91d0) at ../types/scene/wlr_scene.c:410
scene_tree = 0x2d2e980
child = 0x346beb0
#4 0x00007fcccf5f1556 in wlr_scene_node_set_enabled (node=0x2d2e980, enabled=<optimized out>) at ../types/scene/wlr_scene.c:815
x = 0
y = 47376800
visible = {extents = {x1 = 0, y1 = 0, x2 = 0, y2 = 0}, data = 0x7fccd0581dc0 <pixman_region32_empty_data_>}
#5 0x00007fcccf6b5454 in _cffi_f_wlr_scene_node_set_enabled () from /nix/store/vwqgwq7wg6kxijlknpj4fa925zinmdgs-python3-3.10.12-env/lib/python3.10/site-packages/wlroots/_ffi.abi3
.so
No symbol table info available.
#6 0x00007fccd247c317 in cfunction_call (func=0x7fcc8d478400, args=<optimized out>, kwargs=<optimized out>) at Objects/methodobject.c:552
tstate = 0x11d2d10
flags = <optimized out>
meth = <optimized out>
self = <optimized out>
result = <optimized out>
#0 0x00007f11efa56a60 in scene_node_visibility () from /nix/store/lypjlcq8ivw85y4sa8h0xm2yxnbw11ji-wlroots-0.16.2/lib/libwlroots.so.11
No symbol table info available.
#1 0x00007f11efa56a8f in scene_node_visibility () from /nix/store/lypjlcq8ivw85y4sa8h0xm2yxnbw11ji-wlroots-0.16.2/lib/libwlroots.so.11
No symbol table info available.
#2 0x00007f11efa58afb in wlr_scene_node_set_enabled () from /nix/store/lypjlcq8ivw85y4sa8h0xm2yxnbw11ji-wlroots-0.16.2/lib/libwlroots.so.11
No symbol table info available.
#3 0x00007f11efb20454 in _cffi_f_wlr_scene_node_set_enabled () from /nix/store/mdpgdnkypvsl152rk1xzmqh3fwq4wh9f-python3-3.10.12-env/lib/python3.10/site-packages/wlroots/_ffi.abi3
.so
No symbol table info available.
#4 0x00007f11f287c317 in cfunction_call (func=0x7f11c98cc310, args=<optimized out>, kwargs=<optimized out>) at Objects/methodobject.c:552
tstate = 0xca2d10
flags = <optimized out>
meth = <optimized out>
self = <optimized out>
result = <optimized out>
#0 0x00007fcb5c92ec58 in wlr_scene_node_coords () from /nix/store/lypjlcq8ivw85y4sa8h0xm2yxnbw11ji-wlroots-0.16.2/lib/libwlroots.so.11
No symbol table info available.
#1 0x00007fcb5c92fac2 in wlr_scene_node_set_enabled () from /nix/store/lypjlcq8ivw85y4sa8h0xm2yxnbw11ji-wlroots-0.16.2/lib/libwlroots.so.11
No symbol table info available.
#2 0x00007fcb5c9f7454 in _cffi_f_wlr_scene_node_set_enabled () from /nix/store/mdpgdnkypvsl152rk1xzmqh3fwq4wh9f-python3-3.10.12-env/lib/python3.10/site-packages/wlroots/_ffi.abi3
.so
No symbol table info available.
#3 0x00007fcb5f87c317 in cfunction_call (func=0x7fcb0a7c04a0, args=<optimized out>, kwargs=<optimized out>) at Objects/methodobject.c:552
tstate = 0x13dbd10
flags = <optimized out>
meth = <optimized out>
self = <optimized out>
result = <optimized out>
#0 0x00007ff92c40fa03 in scene_node_get_root () from /nix/store/lypjlcq8ivw85y4sa8h0xm2yxnbw11ji-wlroots-0.16.2/lib/libwlroots.so.11
No symbol table info available.
#1 0x00007ff92c4111f0 in wlr_scene_node_destroy () from /nix/store/lypjlcq8ivw85y4sa8h0xm2yxnbw11ji-wlroots-0.16.2/lib/libwlroots.so.11
No symbol table info available.
#2 0x00007ff92c4ceaef in _cffi_f_wlr_scene_node_destroy () from /nix/store/mdpgdnkypvsl152rk1xzmqh3fwq4wh9f-python3-3.10.12-env/lib/python3.10/site-packages/wlroots/_ffi.abi3.so
No symbol table info available.
#3 0x00007ff92f1d7b35 in cfunction_vectorcall_O (func=<optimized out>, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/methodobject.c:516
tstate = 0x1887d10
nargs = 1
meth = <optimized out>
result = <optimized out>
Required:
- I have searched past issues to see if this bug has already been reported.
About this issue
- Original URL
- State: open
- Created 10 months ago
- Comments: 28 (15 by maintainers)
Commits related to this issue
- WLRQ: Setup the listener using self.icon It seems like if we use wlr_drag.destroy_event we can get segfaults when destroying. Using self.icon for the destroy event fixes this. Fixes one crash of #442... — committed to jwijenbergh/qtile by jwijenbergh 10 months ago
- WLRQ: Setup the dnd destroy listener using self.icon It seems like if we use wlr_drag.destroy_event we can get segfaults when destroying. Using self.icon for the destroy event fixes this. Fixes one c... — committed to jwijenbergh/qtile by jwijenbergh 10 months ago
- WLRQ: Setup the dnd destroy listener using self.icon It seems like if we use wlr_drag.destroy_event we can get segfaults when destroying. Using self.icon for the destroy event fixes this. Fixes one c... — committed to jwijenbergh/qtile by jwijenbergh 10 months ago
- WLRQ: Setup the dnd destroy listener using self.icon It seems like if we use wlr_drag.destroy_event we can get segfaults when destroying. Using self.icon for the destroy event fixes this. Fixes one c... — committed to qtile/qtile by jwijenbergh 10 months ago
Yep thanks! Let’s track that there indeed
Yes, it is on my system