qtile: [Wayland] Qtile crashes after exiting program that played fullscreen video
When using for instance Firefox or mpv to play a fullscreen video, Qtile (current git master) crashes when exiting the program. So in the case of mpv Qtile crashes immediately after the video, but in the case of Firefox I can play multiple Youtube videos and it will only crash after exiting Firefox. In both programs I can also toggle endlessly between fullscreen and windowed (tiled) without problems.
I’ve reproduced this problem after checking out a fresh copy of the git repo by using the wephyr
script in the repo after setting up a development environment with dev.sh
from the repo.
This is the traceback causing the crash after exiting Firefox:
Exception ignored from cffi callback <function notify_func at 0x7fdde8862b00>:
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pywayland/server/listener.py", line 32, in notify_func
data = listener._signal._data_wrapper(data)
File "/usr/lib/python3.10/site-packages/wlroots/wlr_types/surface.py", line 26, in __init__
self.commit_event = Signal(ptr=ffi.addressof(self._ptr.events.commit))
AttributeError: cdata 'void *' has no attribute 'events'
Exception ignored from cffi callback <function notify_func at 0x7fdde8862b00>:
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pywayland/server/listener.py", line 32, in notify_func
data = listener._signal._data_wrapper(data)
File "/usr/lib/python3.10/site-packages/wlroots/wlr_types/surface.py", line 26, in __init__
self.commit_event = Signal(ptr=ffi.addressof(self._ptr.events.commit))
AttributeError: cdata 'void *' has no attribute 'events'
Exception ignored from cffi callback <function notify_func at 0x7fdde8862b00>:
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pywayland/server/listener.py", line 32, in notify_func
data = listener._signal._data_wrapper(data)
File "/usr/lib/python3.10/site-packages/wlroots/wlr_types/surface.py", line 26, in __init__
self.commit_event = Signal(ptr=ffi.addressof(self._ptr.events.commit))
AttributeError: cdata 'void *' has no attribute 'events'
Exception ignored from cffi callback <function notify_func at 0x7fdde8862b00>:
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pywayland/server/listener.py", line 32, in notify_func
data = listener._signal._data_wrapper(data)
File "/usr/lib/python3.10/site-packages/wlroots/wlr_types/surface.py", line 26, in __init__
self.commit_event = Signal(ptr=ffi.addressof(self._ptr.events.commit))
AttributeError: cdata 'void *' has no attribute 'events'
free(): invalid next size (fast)
And this is the traceback after exiting mpv:
Exception ignored from cffi callback <function notify_func at 0x7f09e513eb00>:
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pywayland/server/listener.py", line 32, in notify_func
data = listener._signal._data_wrapper(data)
File "/usr/lib/python3.10/site-packages/wlroots/wlr_types/surface.py", line 26, in __init__
self.commit_event = Signal(ptr=ffi.addressof(self._ptr.events.commit))
AttributeError: cdata 'void *' has no attribute 'events'
Exception ignored from cffi callback <function notify_func at 0x7f09e513eb00>:
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pywayland/server/listener.py", line 32, in notify_func
data = listener._signal._data_wrapper(data)
File "/usr/lib/python3.10/site-packages/wlroots/wlr_types/surface.py", line 26, in __init__
self.commit_event = Signal(ptr=ffi.addressof(self._ptr.events.commit))
AttributeError: cdata 'void *' has no attribute 'events'
Exception ignored from cffi callback <function notify_func at 0x7f09e513eb00>:
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pywayland/server/listener.py", line 32, in notify_func
data = listener._signal._data_wrapper(data)
File "/usr/lib/python3.10/site-packages/wlroots/wlr_types/surface.py", line 26, in __init__
self.commit_event = Signal(ptr=ffi.addressof(self._ptr.events.commit))
AttributeError: cdata 'void *' has no attribute 'events'
Exception ignored from cffi callback <function notify_func at 0x7f09e513eb00>:
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pywayland/server/listener.py", line 32, in notify_func
data = listener._signal._data_wrapper(data)
File "/usr/lib/python3.10/site-packages/wlroots/wlr_types/surface.py", line 26, in __init__
self.commit_event = Signal(ptr=ffi.addressof(self._ptr.events.commit))
AttributeError: cdata 'void *' has no attribute 'events'
Exception ignored from cffi callback <function notify_func at 0x7f09e513eb00>:
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pywayland/server/listener.py", line 32, in notify_func
data = listener._signal._data_wrapper(data)
File "/usr/lib/python3.10/site-packages/wlroots/wlr_types/surface.py", line 26, in __init__
self.commit_event = Signal(ptr=ffi.addressof(self._ptr.events.commit))
AttributeError: cdata 'void *' has no attribute 'events'
Exception ignored from cffi callback <function notify_func at 0x7f09e513eb00>:
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pywayland/server/listener.py", line 32, in notify_func
data = listener._signal._data_wrapper(data)
File "/usr/lib/python3.10/site-packages/wlroots/wlr_types/surface.py", line 26, in __init__
self.commit_event = Signal(ptr=ffi.addressof(self._ptr.events.commit))
AttributeError: cdata 'void *' has no attribute 'events'
free(): invalid size
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 18 (9 by maintainers)
Commits related to this issue
- Don't wrap IdleInhibitorV1's destroy event data According to wlroots' emitter for this signal, it *does* return the idle inhibitor's `struct wlr_surface*`. However, in practice the pointed-to data se... — committed to m-col/pywlroots by m-col 2 years ago
- WL: Don't remove idle inhibit listener upon destroy This causes it to get double-removed, accessing invalid memory and causing a crash. Fixes #3361 — committed to m-col/qtile by m-col 2 years ago
@m-col I don’t see an option to reopen this issue, but I’m afraid it’s not fixed. I’m now running the current git master with pywayland 0.4.11 and pywlroots 0.15.9.
This should be fixed now with v0.4.11 of pywayland. Please re-open if you update to pywayland and find that it is not fixed.