Mir

[regression] Client ABI 8 broken in 0.13 series

Bug #1434400 reported by Daniel van Vugt
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Invalid
Critical
Unassigned
mir (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

I've just done a little sanity testing of our client ABI changes and found we've broken the client 8 ABI at least once, maybe twice in series 0.13.

Test case: Drop older demos client binaries (which still only use libmirclient8) into a newer build tree.

Expected: demo clients still run.
Observed: demo clients fail to start with:
bin/.mir_demo_client_fingerpaint-uninstalled: relocation error: bin/.mir_demo_client_fingerpaint-uninstalled: symbol mir_surface_get_buffer_stream, version MIR_CLIENT_8 not defined in file libmirclient.so.8 with link time reference

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

Seems possibly to be what I predicted:
https://bugs.launchpad.net/mir/+bug/1415321/comments/3

ldd bin/.mir_demo_client_eglsquare-uninstalled
 libmirclient.so.8 => ./lib/libmirclient.so.8 (0x00007f58fa14d000)
 libmircommon.so.3 => /usr/lib/x86_64-linux-gnu/libmircommon.so.3 (0x00007f58f9ee2000)
 libmircommon.so.4 => /home/dan/bzr/mir/dev/build/lib/libmircommon.so.4 (0x00007f58f8f7a000)

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

Hmm, OK. Seems the test only fails locally between r2407 and 2408. But on the wider scale between releases we've maintained compatibility from 0.11/0.12 to dev r2408.

It seems the problem was fixed in r2408 relative to previous releases. However revisions after 0.12.0 and prior to r2408 had ABI breaks.

And yes, it does indeed seem that we've maintained ABI compatibility by virtue of having libmircommon.so.3 and libmircommon.so.4 loadable in the same client process simultaneously. Scary, but seems to work.

Changed in mir:
status: In Progress → Incomplete
Changed in mir (Ubuntu):
status: New → Incomplete
Changed in mir:
milestone: 0.13.0 → none
Changed in mir:
status: Incomplete → Invalid
Changed in mir (Ubuntu):
status: Incomplete → Invalid
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.