-
Notifications
You must be signed in to change notification settings - Fork 93
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
Segfault when cursor moves after monitor plugged in #1009
Comments
Some more detail on the scenario that provokes this: Qt (at least in this scenario) uses a single surface and updates the buffer. The error is occurring when a bufferstream has been used to draw the pointer and |
OK, the problem is that |
1016: PixelSource::read() should execute the supplied block r=RAOF a=AlanGriffiths PixelSource::read() should execute the supplied block. (Fixes: #1009) The WlShmBuffer::read() implementation failed to execute the do_with_pixels block when the underlying wl_buffer has been destroyed. As the most recent buffer remains in the bufferstream until another buffer is submitted client code (e.g. CursorImageFromBuffer) cannot know that the PixelSource is no longer supported by an underlying wl_buffer. I've removed the log that this is a logic_error as I don't see how the calling code can know. Co-authored-by: Alan Griffiths <alan@octopull.co.uk>
(There may be simpler, but this works for me.)
Run up
miral-app
with two screens L and R. Terminal appears on R.Use mouse to move the terminal window to L, leaving mouse over titlebar.
Unplug L, wait for screen to update (terminal appears on R as it's now at 0,0).
Replug L, wait for screen to update (terminal appears on L as it's now at 0,0).
Move cursor off window.
Expect: system continues to work.
Actual: segfault at
src/platforms/mesa/server/kms/cursor.cpp:296
The text was updated successfully, but these errors were encountered: