-
Notifications
You must be signed in to change notification settings - Fork 104
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
Mir sometimes shuts down when moving to a different TTY when logind-driven #2661
Comments
Well, I couldn't (yet) reproduce #2674, but I tried switching VT a few times with gdb attached to miriway-shell and got:
|
At the end of the miriway log there's an exception thrown from: Anyway, poking around the code I found: bool mgg::RealKMSOutput::set_crtc(FBHandle const& fb)
{
if (!ensure_crtc())
{
mir::log_error("Output %s has no associated CRTC to set a framebuffer on",
mgk::connector_name(connector).c_str());
return false;
} Now, I think this is wrong: void mgg::RealKMSOutput::clear_crtc()
{
try
{
ensure_crtc();
}
catch (...)
{ Strangely, for a function that is expected to (and does) sometimes fail through an exception, |
OK, got a stack trace. Also worth noting I only seem to hit this error after:
So the failure mode makes sense: The exception propagates to (I've yet to figure out what should be happening in this code, but it is definitely wrong.) |
My suspicion (to be confirmed tomorrow) is that the idle/wake cycle isn't maintaining invariants somewhere and that is what provokes the initial "Failed to find CRTC" exception. I don't think we can actually recover completely after this happens (there's nothing to composite to). But we can certainly decide whether |
Hmm, this also has something to do with client activity. So I've "fixed" But if I have, say, [edit] Forcing a display configuration change by plugging in another monitor also restores normality. So the condition leading to "Failed to find CRTC" is recoverable. (But not in the immediate context of the exception.) |
2715: Release/2.10 (reboot) r=Saviq a=AlanGriffiths - ABI summary: - miral ABI unchanged at 5 - mircommon ABI unchanged at 9 - mircookie ABI unchanged at 2 - mircore ABI unchanged at 2 - miroil ABI unchanged at 2 - mirplatform ABI unchanged at 23 - mirserver ABI unchanged at 58 - mirwayland ABI unchanged at 3 - mirplatformgraphics ABI unchanged at 20 - mirinputplatform ABI unchanged at 8 - Enhancements: - Verify wl_pointer.set_cursor() serial matches latest wl_pointer.enter() serial (#2532) - MinimalWindowManager: allow moving window from the maximized state (#2593) - X11 platform: send discrete scroll (#2579) - Verify serials for move/resize requests (#2622) - Modernize touch events (#2623) - Implement Modifier+Drag window move gesture (#2626) - Improve Client class lifetime management (#2644) - Implement X11 platform pixel format selection correctly (#2648) - Deactivate text input in destructor for v1 and v2 protocols (#2657) - gbm-kms/quirks: Quirk off AST devices (#2679) - Bugs fixed: - Incorrect rendering when a surface spans multiple outputs (#1753) - [Xwayland] weird focus problems with CLion (#2255) - Maximized windows end up behind panels after screen going off (#2580) - Menus of panels don't close when losing (or don't lose) focus (#2585) - CapsLock state gets stuck (#2592) - Popups dismissed by Mir when parent clicked (#2604) - Latest swaybg (on 22.10) doesn't paint on Mir (#2620) - Shutdown crash when OSK is running (#2639) - Cursor only updates once per enter on XWayland (#2643) - OSK stays on screen with unfocused app (#2651) - Scaling messes up screencopy (#2653) - Mir sometimes shuts down when moving to a different TTY when logind-driven (#2661) - Bug in implementation of xdg_output (#2666) - Waking screens up after idle-timeout often stops or locks Mir up (#2674) - In CLion cut & paste only works up to the last \n in the source text (#2677) Co-authored-by: Michał Sawicz (Saviq) <[email protected]> Co-authored-by: Alan Griffiths <[email protected]>
2715: Release/2.10 (reboot) r=Saviq a=AlanGriffiths - ABI summary: - miral ABI unchanged at 5 - mircommon ABI unchanged at 9 - mircookie ABI unchanged at 2 - mircore ABI unchanged at 2 - miroil ABI unchanged at 2 - mirplatform ABI unchanged at 23 - mirserver ABI unchanged at 58 - mirwayland ABI unchanged at 3 - mirplatformgraphics ABI unchanged at 20 - mirinputplatform ABI unchanged at 8 - Enhancements: - Verify wl_pointer.set_cursor() serial matches latest wl_pointer.enter() serial (#2532) - MinimalWindowManager: allow moving window from the maximized state (#2593) - X11 platform: send discrete scroll (#2579) - Verify serials for move/resize requests (#2622) - Modernize touch events (#2623) - Implement Modifier+Drag window move gesture (#2626) - Improve Client class lifetime management (#2644) - Implement X11 platform pixel format selection correctly (#2648) - Deactivate text input in destructor for v1 and v2 protocols (#2657) - gbm-kms/quirks: Quirk off AST devices (#2679) - Bugs fixed: - Incorrect rendering when a surface spans multiple outputs (#1753) - [Xwayland] weird focus problems with CLion (#2255) - Maximized windows end up behind panels after screen going off (#2580) - Menus of panels don't close when losing (or don't lose) focus (#2585) - CapsLock state gets stuck (#2592) - Popups dismissed by Mir when parent clicked (#2604) - Latest swaybg (on 22.10) doesn't paint on Mir (#2620) - Shutdown crash when OSK is running (#2639) - Cursor only updates once per enter on XWayland (#2643) - OSK stays on screen with unfocused app (#2651) - Scaling messes up screencopy (#2653) - Mir sometimes shuts down when moving to a different TTY when logind-driven (#2661) - Bug in implementation of xdg_output (#2666) - Waking screens up after idle-timeout often stops or locks Mir up (#2674) - In CLion cut & paste only works up to the last \n in the source text (#2677) Co-authored-by: Michał Sawicz (Saviq) <[email protected]> Co-authored-by: Alan Griffiths <[email protected]>
Steps
Expected
Current
Logs say:
The text was updated successfully, but these errors were encountered: