Mir

Client fails to work with multiple client platform versions installed

Bug #1488500 reported by Sebastien Bacher
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Alan Griffiths
mir (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Using a current wily which has been regularly updated though the cycle, you can end up with old client platform versions still installed and mir trying to load those before the current once.

With the mesa module this results in a segfault (after the correct library is identified).

Related branches

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

It is weird:

The client modules appear to have correctly versioned symbols:

$ objdump -T /usr/lib/x86_64-linux-gnu/mir/client-platform/mesa.so.2 | grep is_appropriate_module
0000000000004270 g DF .text 0000000000000054 MIR_CLIENT_PLATFORM_2 is_appropriate_module

$ objdump -T /usr/lib/x86_64-linux-gnu/mir/client-platform/mesa.so.3 | grep is_appropriate_module
?????????????????????? g DF .text ????????????????????? MIR_CLIENT_PLATFORM_3 is_appropriate_module

And we specify the version:

            auto probe = module->|load_function<mir::client::ClientPlatformProbe>("is_appropriate_module", CLIENT_PLATFORM_VERSION);

Changed in mir:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Alan Griffiths (alan-griffiths)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

libmirclient does the right thing unless mesa.so.2 is loaded before mesa.so.3 (so on some systems it works when mesa.so.3 is encountered first when listing the directory.)

It then correctly identifies that it can't find the versioned entry points in mesa.so.2 and tries to use mesa.so.3. That ends up with a SEGFAULT.

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

Ouch. Confirmed on a wily desktop just by upgrading it. Demo clients crash because they're getting the wrong client platform.

Changed in mir:
milestone: none → 0.16.0
Changed in mir:
status: Confirmed → In Progress
summary: - Client fails to work with multiple client platform versions installed,
- picking wrong one
+ Client fails to work with multiple client platform versions installed
description: updated
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

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

Changed in mir:
status: In Progress → Fix Committed
Changed in mir:
status: Fix Committed → Fix Released
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

mir (0.16.0+15.10.20150921.1-0ubuntu1) wily; urgency=medium

Changed in mir (Ubuntu):
importance: Undecided → High
status: New → 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.