Mir clients leak all driver modules including the unused ones, keeping them resident
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Medium
|
Daniel van Vugt | ||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Mir clients leak all driver modules including the unused ones, keeping them resident.
$ sudo mir_demo_server
$ sudo mir_demo_
$ sudo grep client- /proc/`pidof mir_demo_
7f7ff23e7000-
7f7ff23f5000-
7f7ff25f5000-
7f7ff25f6000-
7f7ff2c22000-
7f7ff2c35000-
7f7ff2e35000-
7f7ff2e36000-
I think this also explains bug 1526658 as some people might also have mesa.so.2 still installed.
Related branches
- Chris Halse Rogers: Needs Fixing
- PS Jenkins bot (community): Needs Fixing (continuous-integration)
- Alan Griffiths: Abstain
- Mir CI Bot: Approve (continuous-integration)
-
Diff: 436 lines (+190/-42)6 files modifiedsrc/client/default_connection_configuration.cpp (+13/-21)
src/client/probing_client_platform_factory.cpp (+41/-4)
src/client/probing_client_platform_factory.h (+11/-2)
src/platforms/mesa/client/client_platform_factory.cpp (+9/-4)
tests/mir_test_framework/CMakeLists.txt (+1/-0)
tests/unit-tests/client/test_probing_client_platform_factory.cpp (+115/-11)
- PS Jenkins bot (community): Approve (continuous-integration)
- Mir CI Bot: Approve (continuous-integration)
- Kevin DuBois (community): Approve
-
Diff: 645 lines (+333/-43)13 files modifiedinclude/common/mir/plugin.h (+48/-0)
src/client/default_connection_configuration.cpp (+13/-21)
src/client/mir_connection.cpp (+1/-0)
src/client/mir_connection.h (+3/-0)
src/client/probing_client_platform_factory.cpp (+44/-5)
src/client/probing_client_platform_factory.h (+11/-2)
src/common/sharedlibrary/CMakeLists.txt (+1/-0)
src/common/sharedlibrary/plugin.cpp (+50/-0)
src/common/symbols.map (+6/-0)
src/include/client/mir/client_platform.h (+2/-1)
src/platforms/mesa/client/client_platform_factory.cpp (+7/-3)
tests/mir_test_framework/CMakeLists.txt (+1/-0)
tests/unit-tests/client/test_probing_client_platform_factory.cpp (+146/-11)
- Mir CI Bot: Approve (continuous-integration)
- Andreas Pokorny (community): Needs Fixing
- PS Jenkins bot (community): Needs Fixing (continuous-integration)
-
Diff: 2689 lines (+780/-1045)38 files modifiedexamples/server_example_adorning_compositor.cpp (+4/-19)
examples/server_example_adorning_compositor.h (+2/-9)
examples/server_example_custom_compositor.cpp (+5/-7)
include/server/mir/input/touch_visualizer.h (+0/-6)
include/server/mir/server.h (+2/-5)
include/test/mir/test/doubles/mock_input_device_observer.h (+0/-44)
src/client/buffer_stream.cpp (+0/-1)
src/client/buffer_vault.cpp (+1/-18)
src/client/buffer_vault.h (+0/-2)
src/client/default_connection_configuration.cpp (+13/-21)
src/client/mir_connection.cpp (+2/-4)
src/client/mir_connection.h (+1/-1)
src/client/probing_client_platform_factory.cpp (+41/-4)
src/client/probing_client_platform_factory.h (+11/-2)
src/client/rpc/mir_protobuf_rpc_channel.cpp (+14/-27)
src/client/rpc/mir_protobuf_rpc_channel.h (+1/-1)
src/include/client/mir/client_platform_factory.h (+3/-2)
src/platforms/android/client/client_platform_factory.cpp (+2/-2)
src/platforms/android/server/display.cpp (+0/-2)
src/platforms/mesa/client/client_platform_factory.cpp (+10/-5)
src/server/compositor/buffer_queue.cpp (+4/-24)
src/server/compositor/buffer_queue.h (+0/-1)
src/server/server.cpp (+0/-1)
tests/include/mir/test/doubles/mock_input_device.h (+0/-52)
tests/include/mir_test_framework/stub_client_platform_factory.h (+15/-0)
tests/integration-tests/input/CMakeLists.txt (+0/-1)
tests/integration-tests/input/test_single_seat_setup.cpp (+0/-452)
tests/mir_test_doubles/CMakeLists.txt (+0/-1)
tests/mir_test_doubles/mock_input_device.cpp (+0/-43)
tests/mir_test_framework/CMakeLists.txt (+1/-0)
tests/mir_test_framework/stub_client_platform_factory.cpp (+48/-56)
tests/mir_test_framework/stub_client_platform_module.cpp (+5/-2)
tests/unit-tests/client/test_buffer_vault.cpp (+1/-31)
tests/unit-tests/client/test_probing_client_platform_factory.cpp (+115/-11)
tests/unit-tests/client/test_protobuf_rpc_channel.cpp (+5/-5)
tests/unit-tests/compositor/test_buffer_queue.cpp (+5/-117)
tests/unit-tests/graphics/android/test_display.cpp (+0/-47)
tests/unit-tests/input/test_default_input_device_hub.cpp (+469/-19)
- Kevin DuBois (community): Approve
- Alan Griffiths: Approve
- Andreas Pokorny (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
- Mir CI Bot: Approve (continuous-integration)
-
Diff: 652 lines (+255/-105)11 files modifiedsrc/client/default_connection_configuration.cpp (+13/-21)
src/client/probing_client_platform_factory.cpp (+41/-4)
src/client/probing_client_platform_factory.h (+11/-2)
src/include/client/mir/client_platform_factory.h (+3/-2)
src/platforms/android/client/client_platform_factory.cpp (+2/-2)
src/platforms/mesa/client/client_platform_factory.cpp (+10/-5)
tests/include/mir_test_framework/stub_client_platform_factory.h (+15/-0)
tests/mir_test_framework/CMakeLists.txt (+1/-0)
tests/mir_test_framework/stub_client_platform_factory.cpp (+48/-56)
tests/mir_test_framework/stub_client_platform_module.cpp (+5/-2)
tests/unit-tests/client/test_probing_client_platform_factory.cpp (+106/-11)
- PS Jenkins bot (community): Needs Fixing (continuous-integration)
- Alan Griffiths: Disapprove
- Mir CI Bot: Needs Fixing (continuous-integration)
-
Diff: 18 lines (+8/-0)1 file modifieddebian/control (+8/-0)
- PS Jenkins bot (community): Approve (continuous-integration)
- Daniel van Vugt: Approve
- Cemil Azizoglu (community): Approve
- Alexandros Frantzis (community): Approve
- Alberto Aguirre (community): Approve
- Mir CI Bot: Approve (continuous-integration)
-
Diff: 172 lines (+60/-29)5 files modifiedsrc/client/probing_client_platform_factory.cpp (+24/-23)
src/common/sharedlibrary/CMakeLists.txt (+1/-1)
src/common/sharedlibrary/shared_library_prober.cpp (+20/-5)
src/common/symbols.map (+7/-0)
src/include/common/mir/shared_library_prober.h (+8/-0)
description: | updated |
Changed in mir: | |
milestone: | 0.19.0 → 0.20.0 |
Changed in mir: | |
milestone: | 0.20.0 → 0.19.0 |
Changed in mir: | |
status: | Fix Committed → Fix Released |
OK, this looks really simple. The only challenge is fixing it in a way that also simplifies the code.