-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Crash when switching from laptop to external monitor #2319
Comments
I managed to reproduce this with something like: $ swaylock & sleep 1; python create_wayland_output.py & (sleep 0.05; python destroy_wayland_output.py WL-1) Frame #7 in the stack trace is:
Adding logging suggests that wo is being deleted: wo->render is null and wo->handle->name is garbage. The wo->handle of the wo being deleted matches WL-1. Presumably this code is racing with the on_output_remove callback a few lines below - that would remove the output from I can't get this to crash if I comment out this code in session-lock.cpp that responds to output_changed events:
I'm not sure if that code is incorrect per se. You could argue it's a problem that the render code crashes if wlr-surface is committed on a deleted output. This won't happen to regular views because they'll be moved to other outputs when the output is deleted, but I guess it could happen to layer-shell views which are tied to a given output? @ammen99 any thoughts? |
Not sure whether you're on Matrix and following the discussion there, there is work on some kind of fuzz tests and since recently they also include output hotplug, so I had to fix a few related crashes in #2325. Maybe that PR helps? |
Closing for now, feel free to reopen if the issue persists with latest git. |
I've seen a couple of these crashes recently using wayfire git as of a few days ago ("29bed6ef switcher: fix handling when workspace becomes empty (#2309)") plus #2294 . This may be already fixed (or it might be a bug in my code), but wanted to report it.
Occurrence 1:
Occurrence 2:
The text was updated successfully, but these errors were encountered: