Mir

[DRM/GBM] Killing (or crashing) Mir often leaves the screen blank and difficult to recover

Bug #1189770 reported by Daniel van Vugt
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Medium
Alexandros Frantzis
mir (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Killing (or crashing) Mir often leaves the screen blank and difficult to recover.

When this happens, the only way to get the screen back is to log in remotely (ssh) and run:
    sudo chvt 7
Assuming you're running X still...

OLD DESCRIPTION:
When this happens, the only way to get the screen back is to switch to X (Ctrl+Alt+F7) and back again (Ctrl+Alt+F1).

I'm marking this as "regression" of bug 1170643, but I'm not sure that one ever was really fixed.

Related branches

Changed in mir:
status: New → Triaged
kevin gunn (kgunn72)
Changed in mir:
importance: High → Medium
Revision history for this message
kevin gunn (kgunn72) wrote :

i actually tested this last night - could not reproduce.
the word "often" was used.....any particular demo client ? or any guess at what kind of frequency ?
not a 13.10 issue

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Yes, I have this issue every day. But it's kind of a Heisenbug in that it does not happen reliably.

The good news is that in my recent work I have discovered the code responsible for the blanking/unblanking. It looks like the core problem is that we're (maybe) not restoring the DRM CRTC setting on exit. And with no valid setting or framebuffer the kernel puts the monitor to sleep. Maybe our signal handling needs work.

Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: Killing (or crashing) Mir often leaves the screen blank and difficult to recover

With the new keyboard handling that landed yesterday this bug just got more difficult. You can only recover by logging in remotely (ssh).

summary: - [regression] Killing Mir with Ctrl+C often leaves the screen blank and
+ [regression] Killing (or crashing) Mir often leaves the screen blank and
difficult to recover
summary: - [regression] Killing (or crashing) Mir often leaves the screen blank and
- difficult to recover
+ Killing (or crashing) Mir often leaves the screen blank and difficult to
+ recover
description: updated
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

This bug is DRM/VT specific and bug 1227743 is about phone. Hence they can't really be the same issue.

kevin gunn (kgunn72)
summary: - Killing (or crashing) Mir often leaves the screen blank and difficult to
- recover
+ [DRM/GBM] Killing (or crashing) Mir often leaves the screen blank and
+ difficult to recover
Revision history for this message
Eleni Maria Stea (hikiko) wrote :

Is it possible that this bug is related to this one?
https://bugs.launchpad.net/mir/+bug/1224252

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Sounds similar. But in bug 1224252 I am assuming that unity-system-compositor is shutting down cleanly. Whereas in this bug it only seems to happen when Mir is killed uncleanly.

Changed in mir:
assignee: nobody → Alexandros Frantzis (afrantzis)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

This bug had become quite rare but I think we might have made it worse again in r1546. Not sure.

Changed in mir:
milestone: none → 0.2.0
status: Triaged → In Progress
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir/devel at revision None, scheduled for release in mir, milestone Unknown

Changed in mir:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (7.2 KiB)

This bug was fixed in the package mir - 0.2.0+14.10.20140605-0ubuntu1

---------------
mir (0.2.0+14.10.20140605-0ubuntu1) utopic; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.2.0 (https://launchpad.net/mir/+milestone/0.2.0)
    - mirclient ABI unchanged, still at 7. Clients do not need rebuilding.
    - mirserver ABI bumped to 20. Shells need rebuilding.
      . Cursor::set_image() parameters changed.
      . Display::the_cursor() renamed to Display::create_hardware_cursor()
      . Platform::create_display() requires a new parameter; gl_program_factory
      . Renderable::buffer() no longer accepts any parameter at all. Multi-
        monitor frame sync is guaranteed in other ways now.
      . Scene::generate_renderable_list() renamed to renderable_list_for(id)
        where id is an opaque compositor ID of your choosing.
      . Scene::set_change_callback() replaced by the more generic:
        add_observer() and remove_observer() functions.
      . Added default implementation for SceneObserver.
      . SessionCreator renamed to ConnectionCreator.
      . ConnectedSessions renamed to Connections.
      . ProtobufSessionCreator renamed to ProtobufConnectionCreator.
      . SessionAuthorizer: pid_t parameters replaced by SessionCredentials.
      . Massive architectural changes to Input-everything.
      . Surface no longer implements Renderable, but emits one via
        compositor_snapshot().
      . Pass the full renderable list to Renderer::render().
      . Graceful handling of exceptions thrown from server threads.
      . Clarify size position interfaces in the Surface classes.
      . Plumbing for trusted sessions.
      . Allow posting and managing custom main-loop actions.
      . Timer extension.
      . Identify client process when client connects to Mir not when socket
        connects.
      . Use the ServerActionQueue for display config.
      . Recomposition signal moved to the MultiThreadedCompositor.
      . Make timer service replaceable.
      . Clarify assumptions about how many buffers a client can fill without
        blocking.
      . Introduce EmergencyCleanup interface.
    - Demo shell enhancements:
      . You can now change graphics modes on the fly using Ctrl+Alt+(-/=).
        To reset to the preferred mode use Ctrl+Alt+0.
      . The above mode changing as well as existing screen rotation keys
        (Ctrl+Alt+arrows) are now per-display; only applied to the monitor
        the mouse pointer is on.
      . New shell controls documented.
    - A new testing category, performance test, was introduced. It currently
      runs glmark2-es2 and compares the result to a minimum threshold.
    - MIR_VERSION_MINOR is tied to MIRSERVER_ABI in the sense that a change
      in the former now requires dependent projects that a rebuild is
      necessary.
    - SwitchingBundle was replaced by BufferQueue.
    - Expand credentials to include uid/gid for session authorizer.
    - Bypass control is now Mesa-specific and tied to the command line options.
      So the environment variable MIR_BYPASS has changed to MIR_SERVER_BYPASS.
    - Ongoing architectural changes in the compositor/renderer logic to
   ...

Read more...

Changed in mir (Ubuntu):
status: New → Fix Released
Changed in mir:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.