Mir

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

Bug #1282248 reported by Ricardo Salveti
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mir
Invalid
High
Alexandros Frantzis
unity-mir
Fix Released
High
Gerry Boland
unity-mir (Ubuntu)
Fix Released
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/

Tags: nested

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
Revision history for this message
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.

Revision history for this message
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.

Revision history for this message
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)
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
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in unity-mir (Ubuntu):
status: New → Confirmed
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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