Unity8 crashes on screensaver suspend [Nested Mir Display Error: Failed to update EGL surface: EGL_BAD_CONTEXT (0x3006)]

Bug #1656250 reported by Jean-Baptiste Lallement on 2017-01-13
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical System Image
High
Michał Sawicz
Mir
Confirmed
High
Unassigned
mir (Ubuntu)
High
Unassigned
qtmir (Ubuntu)
High
Gerry Boland

Bug Description

On Zesty desktop with unity8-session 16.04 349

Test Case
1. Start a unity8 session
2. Launch an app (eg Calculator)
3. Wait

Expected result
After an hour the session and the calculator are still running

Actual result
At some point (less than an hour) the session restarts (the calculator is gone if you were not staring at the screen when it restarted)

Related branches

Jean-Baptiste Lallement (jibel) wrote :

Log files.

kevin gunn (kgunn72) on 2017-01-13
Changed in canonical-devices-system-image:
assignee: nobody → Michał Sawicz (saviq)
importance: Undecided → High
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in unity8 (Ubuntu):
status: New → Confirmed
tags: added: unity8-desktop
Changed in canonical-devices-system-image:
status: New → Confirmed
Daniel van Vugt (vanvugt) wrote :
Download full text (3.5 KiB)

It appears Unity8 crashed (in Mir) when changing display configuration (which is probably the setting of the display power mode to standby/suspend/off):

[2017-01-13 10:28:09.313008] mirserver: New display configuration:
[2017-01-13 10:28:09.313637] mirserver: Output 37: eDP connected, used
[2017-01-13 10:28:09.313807] mirserver: Physical size 11,6" 260x140mm
[2017-01-13 10:28:09.313949] mirserver: Current mode 1366x768 60,08Hz
[2017-01-13 10:28:09.314087] mirserver: Preferred mode 1366x768 60,08Hz
[2017-01-13 10:28:09.314253] mirserver: Logical position +0+0
[2017-01-13 10:28:09.314387] mirserver: Output 34: VGA disconnected
[2017-01-13 10:28:09.314521] mirserver: Output 46: DisplayPort disconnected
[2017-01-13 10:28:09.314654] mirserver: Output 48: HDMI-A disconnected
[2017-01-13:10:28:09.314] qtmir.screens: QtCompositor::stop
[2017-01-13:10:28:09.316] qtmir.screens: ScreensModel::onCompositorStopping
[2017-01-13:10:28:09.316] qtmir.screens: ScreenWindow::setExposed 0x1467100 false 0x7f56482557b0
[2017-01-13:10:28:09.339] qtmir.screens: ScreensModel::update
[2017-01-13:10:28:09.340] qtmir.screens: Screen::setMirDisplayBuffer Screen(0x7f56482557a0) 0x7f5648159240 0x7f5648159390
[2017-01-13:10:28:09.340] qtmir.screens: =======================================
[2017-01-13:10:28:09.340] qtmir.screens: Screen(0x7f56482557a0) - id: 37 geometry: QRect(0,0 1366x768) window: 0x1467100 type: "EDP" scale: 1
[2017-01-13:10:28:09.340] qtmir.screens: =======================================
[2017-01-13:10:28:09.350] qtmir.screens: QtCompositor::start
[2017-01-13:10:28:09.350] qtmir.screens: ScreensModel::onCompositorStarting
[2017-01-13:10:28:09.350] qtmir.screens: ScreensModel::update
[2017-01-13:10:28:09.350] qtmir.screens: =======================================
[2017-01-13:10:28:09.350] qtmir.screens: Screen(0x7f56482557a0) - id: 37 geometry: QRect(0,0 1366x768) window: 0x1467100 type: "EDP" scale: 1
[2017-01-13:10:28:09.350] qtmir.screens: =======================================
[2017-01-13:10:28:09.351] qtmir.screens: ScreenWindow::setExposed 0x1467100 true 0x7f56482557b0
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::system_error> >'
  what(): Nested Mir Display Error: Failed to update EGL surface: EGL_BAD_CONTEXT (0x3006)
[2017-01-13:10:28:11.613] qtmir.screens: ScreensModel::ScreensModel
[2017-01-13 10:28:11.633539] mirplatform: Found graphics driver: mir:mesa-kms (version 0.25.0)
[2017-01-13 10:28:11.634065] mirplatform: Found graphics driver: mir:mesa-x11 (version 0.25.0)
[2017-01-13 10:28:11.636461] mirserver: Starting
xkbcommon: ERROR: couldn't find a Compose file for locale "fr_FR.UTF-8"
xkbcommon: ERROR: couldn't find a Compose file for locale "fr_FR.UTF-8"
[2017-01-13 10:28:11.669388] mirserver: Using nested cursor
[2017-01-13 10:28:11.672854] mirserver: Initial display configuration:
[2017-01-13 10:28:11.673466] mirserver: Output 37: eDP connected, used
[2017-01-13 10:28:11.673856] mirserver: Physical size 11,6" 260x140mm
[2017-01-13 10:28:11.674229] mirserver: Current mode 1366x768 60,08Hz
[2017-01-13 10:28...

Read more...

Changed in mir:
importance: Undecided → High
status: New → Confirmed
milestone: none → 1.0.0
summary: - session crashes without any user action
+ Unity8 crashes eventually without any user action [Nested Mir Display
+ Error: Failed to update EGL surface: EGL_BAD_CONTEXT (0x3006)]
tags: added: nested
Changed in unity8 (Ubuntu):
importance: Undecided → High

After some experimentation I'm able to confirm previous comment and that the dash crashes when the display suspends. I set it to 10 minutes and from unity8.log the crash always happens after 10 minutes without touching the machine.

Daniel van Vugt (vanvugt) wrote :

Thanks. In the next release; Mir 0.26.0 we've added more information about the power mode to the above log messages so it will become more obvious what's changing.

summary: - Unity8 crashes eventually without any user action [Nested Mir Display
- Error: Failed to update EGL surface: EGL_BAD_CONTEXT (0x3006)]
+ Unity8 crashes on screensaver suspend [Nested Mir Display Error: Failed
+ to update EGL surface: EGL_BAD_CONTEXT (0x3006)]
Daniel van Vugt (vanvugt) wrote :

Sounds similar to bug 1521403 actually. That is also Unity8 crashing on suspend (but suspend triggered by Xmir).

Changed in mir:
status: Confirmed → Incomplete
affects: unity8 (Ubuntu) → qtmir (Ubuntu)
Changed in qtmir (Ubuntu):
assignee: nobody → Gerry Boland (gerboland)
status: Confirmed → In Progress
Daniel van Vugt (vanvugt) wrote :

Sounds like we might want a similar fix in Mir itself.

Changed in mir:
status: Incomplete → Confirmed
Changed in qtmir:
assignee: nobody → Gerry Boland (gerboland)
importance: Undecided → High
status: New → In Progress
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package qtmir - 0.5.1+17.04.20170215.1-0ubuntu1

---------------
qtmir (0.5.1+17.04.20170215.1-0ubuntu1) zesty; urgency=medium

  [ Michał Sawicz ]
  * We're at provides 26 already (LP: #1662608)

  [ Alan Griffiths ]
  * Identify the code that depends directly on mirserver-dev headers

  [ Albert Astals Cid ]
  * Check we provide the same unity-application-impl that we require

  [ Daniel d'Andrada ]
  * Resolve mir cursor names using mir symbols instead of plain strings
    (LP: #1662827)

  [ Gerry Boland ]
  * ScreenModel: Only expose windows on displays that are turned on (LP:
    #1521403, #1638611, #1656250)
  * Restore lost LTTng tracepoints, and delete unused ones (LP:
    #1658084)

  [ Nick Dedekind ]
  * Added Extended Display Information Data (EDID) parsing.

  [ Alan Griffiths, Nick Dedekind ]
  * Iteration 0 of miral::PersistDisplayConfig. This does nothing yet
    (and breaks nothing in the process). This MP creates a place (miral-
    prototypes) to build prototype miral features and sketches out what
    will need to be implemented for PersistDisplayConfig. (LP: #1644189)

 -- Michał Sawicz <email address hidden> Wed, 15 Feb 2017 13:23:17 +0000

Changed in qtmir (Ubuntu):
status: In Progress → Fix Released
kevin gunn (kgunn72) on 2017-03-06
Changed in canonical-devices-system-image:
milestone: none → u8c-1
Changed in qtmir:
status: In Progress → Fix Released
Michał Sawicz (saviq) on 2017-03-13
no longer affects: qtmir
Michał Sawicz (saviq) on 2017-03-14
Changed in canonical-devices-system-image:
status: Confirmed → Fix Released
Changed in mir:
milestone: 0.27.0 → 0.28.0
Michał Sawicz (saviq) wrote :

Syncing task from Mir.

Changed in mir (Ubuntu):
importance: Undecided → High
status: New → Confirmed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments