[regression] Clients hang without explanation when connecting to older servers since r2730.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Medium
|
Alan Griffiths | ||
0.15 |
Won't Fix
|
Medium
|
Unassigned | ||
mir (Ubuntu) |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Clients hang without explanation when connecting to older servers since r2730.
We intend to support side-by-side installations of different libmirserver versions. The client .so will correspond to the more recent server[1] but using a server application that links to the older server library will cause /all/ clients to fail connecting to that server through the new client library as described above.
The impact of this scenario is currently low as we are able to bundle updates to all downstream servers with the release of Mir - but it is indeed a problem we need to address.
~~~
Test case:
1. Start a demo server installed on your system, from the package mir-demos
2. Build lp:mir and try to run bin/mir_
Expected: Client runs and appears on screen.
Observed: Client starts but immediately freezes. Never appears on screen.
~~~~
[1] In 0.14 we landed breaking changes to the client ABI. A significant one of these was to hide the data structures that caused many previous ABI breaks - so client ABI breaks are much less likely than they've been in the past.
Related branches
- PS Jenkins bot (community): Needs Fixing (continuous-integration)
- Daniel van Vugt: Approve
- Alexandros Frantzis (community): Approve
- Kevin DuBois (community): Approve
- Chris Halse Rogers: Pending requested
- Alan Griffiths: Pending requested
-
Diff: 296 lines (+152/-7)8 files modifiedsrc/client/mir_connection.cpp (+2/-2)
src/client/rpc/mir_basic_rpc_channel.cpp (+24/-2)
src/client/rpc/mir_basic_rpc_channel.h (+1/-0)
src/include/common/mir/protobuf/protocol_version.h (+49/-0)
src/server/frontend/socket_connection.cpp (+8/-1)
tests/acceptance-tests/test_client_library.cpp (+65/-0)
tests/integration-tests/test_error_reporting.cpp (+1/-1)
tests/unit-tests/frontend/test_socket_connection.cpp (+2/-1)
Changed in mir: | |
status: | New → Triaged |
Changed in mir: | |
assignee: | Kevin DuBois (kdub) → nobody |
importance: | High → Wishlist |
status: | In Progress → Invalid |
Changed in mir: | |
assignee: | nobody → Alan Griffiths (alan-griffiths) |
status: | Triaged → In Progress |
description: | updated |
Changed in mir: | |
status: | In Progress → Fix Committed |
Changed in mir: | |
status: | Fix Committed → Fix Released |
I'm not sure where we broke it. Seems to be somewhere between r2697 and r2764.