If the only surface in a session cannot take focus the server crashes

Bug #1667645 reported by Alan Griffiths
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Alan Griffiths
0.26
Fix Released
High
Alan Griffiths
MirAL
Fix Released
Medium
Alan Griffiths
mir (Ubuntu)
Fix Released
High
Unassigned
miral (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

The problem is in ms::ApplicationSession::surface_after() it can dereference the surfaces.end() iterator.

Original description:

$ bin/miral-desktop
...
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >'
  what(): surface_after: surface is not a member of this session
Aborted (core dumped)

Using tiling WM doesn't exhibit this problem:

$ bin/miral-desktop --window-manager tiling

I would guess this is something to do with the recent addition of wallpaper. And possibly due to this test box being slow (14 years old), not due to Xenial/Mir 21.0.

Related branches

summary: - Building and running on Xenial miral-shell crashes on exit
+ If the only surface in a session cannot take focus the server crashes
Changed in miral:
status: New → Triaged
Changed in mir:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Alan Griffiths (alan-griffiths)
description: updated
Changed in miral:
status: Triaged → In Progress
importance: Undecided → Medium
assignee: nobody → Alan Griffiths (alan-griffiths)
Changed in mir:
milestone: none → 0.26.2
milestone: 0.26.2 → 1.0.0
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I'm impressed you have a 14 year old system working. Does that mean you use radeon/nouveau and not intel graphics on it? (I can only get up to 9 year old Intel GPUs working with Mir, and 6 years old working with Unity8)

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

Fix committed to lp:mir/0.26 at revision 4033, scheduled for release in Mir 0.26.2

Changed in mir (Ubuntu):
importance: Undecided → Medium
importance: Medium → High
Changed in miral (Ubuntu):
importance: Undecided → Medium
Changed in mir (Ubuntu):
status: New → Triaged
Changed in miral (Ubuntu):
status: New → Triaged
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 1.0.0

Changed in mir:
status: In Progress → Fix Committed
Changed in miral:
milestone: none → 1.3
Changed in miral:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package miral - 1.3.0+17.04.20170303-0ubuntu1

---------------
miral (1.3.0+17.04.20170303-0ubuntu1) zesty; urgency=medium

  * New upstream release 1.3.0 (https://launchpad.net/miral/+milestone/1.3)

    - ABI summary:
      . miral ABI unchanged at 2
    - Enhancements:
      . [libmiral] Support for workspaces
      . [libmiral] Add miral::WindowManagerTools::focus_prev_within_application
                   (LP: #1668562)
      . [libmirclientcpp] A better description of libmirclientcpp-dev
      . [libmirclientcpp] Add RAII wrapper for MirDisplayConfig.
      . [libmirclientcpp] Prevent accidental double-release by deleting release
                          functions for handle classes
      . [miral-shell] Example workspaces implementation
      . [miral-shell] Use background to show keyboard shortcuts
    - Bugs fixed:
      . [libmiral] Join internal client threads before server shutdown
                   (LP: #1668651)
      . [miral-shell] Workaround for crash on exit (LP: #1667645)

 -- Alan Griffiths <email address hidden> Fri, 03 Mar 2017 10:19:14 +0000

Changed in miral (Ubuntu):
status: Triaged → Fix Released
Changed in miral:
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.26.2+17.04.20170322.1-0ubuntu1

---------------
mir (0.26.2+17.04.20170322.1-0ubuntu1) zesty; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.26.2 (https://launchpad.net/mir/+milestone/0.26.2)
    - Bugs fixed:
      . EDID does not change when hotplugging a monitor (LP: #1660017)
      . [regression] mirout crashes when connecting to unity8 or any nested
        server: [libprotobuf FATAL /usr/include/google/protobuf/repeated_field.
        h:1408] CHECK failed: (index) < (current_size_) (LP: #1661163)
      . Mir server crashed with SIGSEGV in
        mir::compositor::TemporaryBuffer::size() called from
        mir::gl::tessellate_renderable_into_rectangle() (LP: #1664760)
      . Nested servers (Unity8) periodically stutter (half frame rate) with
        Mir 0.26.1 (LP: #1666372)
      . Don't dereference the end iterator in ms::ApplicationSession::
        surface_after() (LP: #1667645)
      . [regression] OSK input shaping no longer works correctly (LP: #1669444)
      . Setting MirWindowSpec parameters always causes window's input_region
        to be reset (LP: #1670876)
      . Subpixel order not included in Mir display information (LP: #1393578)
      . Presentation chains should support various swap interval modes
        (LP: #1673533)
      . Need an extension for GBM buffers to replace
        mir_buffer_get_buffer_package() (LP: #1673534)
      . Seg fault on detect_fd_leaks (LP: #1661498)

 -- Cemil Azizoglu <email address hidden> Wed, 22 Mar 2017 04:54:19 +0000

Changed in mir (Ubuntu):
status: Triaged → 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.