Mir

Unity8 crashes when using latest mir/android backend with system-compositor

Bug #1282248 reported by Ricardo Salveti on 2014-02-19
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mir
Invalid
High
Alexandros Frantzis
unity-mir
High
Gerry Boland
unity-mir (Ubuntu)
Undecided
Unassigned

Bug Description

current build number: 192
device name: mako
channel: trusty-proposed
last update: 2014-02-19 16:49:14
version version: 192
version ubuntu: 20140219.2
version device: 20140115.1

Using mir from trunk (mir/devel), with the android backend installed by default, Unity8 fails to start (segfault) when using it with system-compositor (nested mode, which is now the default):
libmirclient7:armhf
libmirclientplatform-android:armhf
libmirplatform:armhf
libmirplatformgraphics-android:armhf
libmirprotobuf0:armhf
libmirserver15:armhf
mir-test-tools:armhf

Unity8 + Mir works fine without nest mode though (that's how we're currently using it with the X86 emulator).

Unity8 trace:
ARM: http://paste.ubuntu.com/6957542/
X86: http://paste.ubuntu.com/6951930/

Related branches

Changed in mir:
importance: Undecided → High
assignee: nobody → Alexandros Frantzis (afrantzis)
status: New → In Progress
Changed in mir:
milestone: none → 0.1.6
tags: added: nested
Alexandros Frantzis (afrantzis) wrote :

The problem seems to be a symbol conflict between unity-mir's "MirSurface" and libmirclient7's "MirSurface", triggered by a change in Mir that dynamically links libmirclientplatform.so. Will investigate further next week.

Alexandros Frantzis (afrantzis) wrote :

When running in nested mode, some information about the MirSurface class (e.g., the symbol table) in libunityapplicationplugin.so is resolved using libmirclient.so.7 'MirSurface', causing crashes:

$ grep 'binding.*_ZTV10MirSurface' ld-debug.txt
1978: binding file /usr/lib/i386-linux-gnu/libmirclient.so.7 [0] to /usr/lib/i386-linux-gnu/libmirclient.so.7 [0]: normal symbol `_ZTV10MirSurface'
1978: binding file /usr/lib/i386-linux-gnu/qt5/imports/Unity-Mir/Unity/Application/libunityapplicationplugin.so [0] to /usr/lib/i386-linux-gnu/libmirclient.so.7 [0]: normal symbol `_ZTV10MirSurface'

We either need to rename MirSurface to something else (e.g., QMirSurface), or preferably put unity-mir classes in a suitable namespace.

Alexandros Frantzis (afrantzis) wrote :

> When running in nested mode, some information about the MirSurface class (e.g., the symbol table)

s/symbol table/virtual method table/

Gerry Boland (gerboland) on 2014-02-24
Changed in unity-mir:
assignee: nobody → Gerry Boland (gerboland)
status: New → In Progress
importance: Undecided → High
Changed in mir:
status: In Progress → Invalid
Changed in mir:
milestone: 0.1.6 → none
Launchpad Janitor (janitor) wrote :

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

Changed in unity-mir (Ubuntu):
status: New → Confirmed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity-mir - 0.3+14.04.20140311-0ubuntu1

---------------
unity-mir (0.3+14.04.20140311-0ubuntu1) trusty; urgency=low

  [ Gerry Boland ]
  * Wrap classes of the QML plugin in a unitymir namespace, prevents
    symbol collision with Mir (LP: #1282248)

  [ Kevin Gunn ]
  * bump debian dep to mir0.1.6

  [ Ubuntu daily release ]
  * New rebuild forced

  [ Alberto Aguirre ]
  * Wrap classes of the QML plugin in a unitymir namespace, prevents
    symbol collision with Mir (LP: #1282248)

  [ Andreas Pokorny ]
  * Wrap classes of the QML plugin in a unitymir namespace, prevents
    symbol collision with Mir (LP: #1282248)
 -- Ubuntu daily release <email address hidden> Tue, 11 Mar 2014 01:24:52 +0000

Changed in unity-mir (Ubuntu):
status: Confirmed → Fix Released
Changed in unity-mir:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers