[regression] mir_demo_server exits immediately with boost bad_any_cast exception
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Critical
|
Andreas Pokorny | ||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Running the mir_demo_server from the current trunk exits immediately with the following output:
[1422256146.287993] Server: Starting
[1422256146.288276] Loader: Loading modules from: /home/william/
[1422256146.288328] Loader: Loading module: /home/william/
[1422256146.288508] Platform Loader: Selected driver: mesa (version 0.11.0)
ERROR: Throw location unknown (consider using BOOST_THROW_
Dynamic exception type: N5boost16except
std::exception:
Related branches
- PS Jenkins bot (community): Approve (continuous-integration)
- Alexandros Frantzis (community): Abstain
- Cemil Azizoglu (community): Approve
-
Diff: 2918 lines (+335/-1282)82 files modifiedCMakeLists.txt (+0/-4)
debian/control (+33/-35)
debian/libmirplatform6driver-android.install (+1/-0)
debian/libmirplatform6driver-mesa.install (+1/-0)
debian/mir-platform-graphics-android.install (+0/-1)
debian/mir-platform-graphics-mesa.install (+0/-1)
debian/mir-test-tools.install (+1/-1)
debian/rules (+14/-1)
include/platform/mir/graphics/platform.h (+1/-31)
include/platform/mir/module_properties.h (+0/-37)
platform-ABI-sha1sums (+1/-2)
server-ABI-sha1sums (+1/-2)
src/CMakeLists.txt (+6/-1)
src/client/default_connection_configuration.cpp (+1/-1)
src/common/graphics/android/mir_native_window.cpp (+1/-0)
src/include/platform/mir/graphics/platform_probe.h (+0/-37)
src/include/platform/mir/options/configuration.h (+0/-2)
src/include/platform/mir/options/default_configuration.h (+0/-5)
src/include/platform/mir/shared_library_loader.h (+28/-0)
src/include/server/mir/default_server_configuration.h (+0/-3)
src/platform/CMakeLists.txt (+6/-6)
src/platform/graphics/CMakeLists.txt (+0/-1)
src/platform/graphics/platform_probe.cpp (+0/-59)
src/platform/options/default_configuration.cpp (+19/-48)
src/platform/symbols.map (+3/-3)
src/platforms/CMakeLists.txt (+0/-16)
src/platforms/android/server/CMakeLists.txt (+25/-16)
src/platforms/android/server/platform.cpp (+1/-23)
src/platforms/android/server/symbols.map (+0/-10)
src/platforms/common/server/symbols.map (+2/-4)
src/platforms/mesa/server/CMakeLists.txt (+26/-19)
src/platforms/mesa/server/platform.cpp (+0/-31)
src/platforms/mesa/server/symbols.map (+0/-16)
src/server/CMakeLists.txt (+1/-5)
src/server/graphics/CMakeLists.txt (+1/-1)
src/server/graphics/default_configuration.cpp (+13/-45)
src/server/report/default_server_configuration.cpp (+0/-9)
src/server/report/logging/logging_report_factory.cpp (+0/-5)
src/server/report/logging_report_factory.h (+0/-1)
src/server/report/lttng/CMakeLists.txt (+0/-1)
src/server/report/lttng/lttng_report_factory.cpp (+0/-6)
src/server/report/lttng/shared_library_prober_report.cpp (+0/-52)
src/server/report/lttng/shared_library_prober_report.h (+0/-48)
src/server/report/lttng/shared_library_prober_report_tp.h (+0/-70)
src/server/report/lttng/tracepoints.c (+0/-1)
src/server/report/lttng_report_factory.h (+0/-1)
src/server/report/null/null_report_factory.cpp (+0/-11)
src/server/report/null_report_factory.h (+0/-2)
src/server/report/report_factory.h (+0/-2)
src/server/server.cpp (+5/-8)
src/server/symbols.map (+0/-2)
src/wrapper.c (+0/-3)
tests/acceptance-tests/CMakeLists.txt (+5/-1)
tests/acceptance-tests/server_configuration_wrapping.cpp (+0/-3)
tests/acceptance-tests/test_symbols_required_by_mesa.cpp (+1/-1)
tests/include/mir_test_framework/client_platform_factory.h (+2/-2)
tests/include/mir_test_framework/executable_path.h (+0/-2)
tests/include/mir_test_framework/headless_test.h (+1/-1)
tests/include/mir_test_framework/stub_server_platform_factory.h (+0/-49)
tests/integration-tests/CMakeLists.txt (+1/-10)
tests/mir_test_doubles/CMakeLists.txt (+8/-10)
tests/mir_test_framework/CMakeLists.txt (+18/-36)
tests/mir_test_framework/executable_path.cpp (+0/-27)
tests/mir_test_framework/headless_test.cpp (+27/-5)
tests/mir_test_framework/platform_graphics_dummy.cpp (+0/-36)
tests/mir_test_framework/stub_client_platform_factory.cpp (+0/-1)
tests/mir_test_framework/stub_server_platform_factory.cpp (+0/-72)
tests/mir_test_framework/stubbed_graphics_platform.cpp (+7/-11)
tests/mir_test_framework/stubbed_server_configuration.cpp (+2/-2)
tests/mir_test_framework/symbols-server.map (+0/-8)
tests/mir_test_framework/testing_client_options.cpp (+53/-2)
tests/unit-tests/CMakeLists.txt (+8/-27)
tests/unit-tests/client/CMakeLists.txt (+0/-1)
tests/unit-tests/client/test_client_platform.cpp (+4/-4)
tests/unit-tests/client/test_probing_client_platform_factory.cpp (+3/-3)
tests/unit-tests/graphics/CMakeLists.txt (+0/-1)
tests/unit-tests/graphics/android/test_platform.cpp (+0/-26)
tests/unit-tests/graphics/mesa/test_platform.cpp (+0/-24)
tests/unit-tests/graphics/test_platform_prober.cpp (+0/-215)
tests/unit-tests/shared_library_test.cpp (+1/-1)
tools/install_on_android.sh (+3/-3)
tools/valgrind_suppressions_armhf (+0/-9)
- PS Jenkins bot (community): Approve (continuous-integration)
- Alexandros Frantzis (community): Approve
- Cemil Azizoglu (community): Approve
- Alan Griffiths: Approve
-
Diff: 25 lines (+2/-2)2 files modifiedsrc/platform/options/default_configuration.cpp (+1/-1)
src/platforms/mesa/server/platform.cpp (+1/-1)
Changed in mir: | |
assignee: | nobody → Andreas Pokorny (andreas-pokorny) |
status: | Confirmed → In Progress |
Changed in mir: | |
milestone: | none → 0.11.0 |
summary: |
- mir_demo_server exits immediately with boost bad_any_cast exception + [regression] mir_demo_server exits immediately with boost bad_any_cast + exception |
tags: | added: regression |
Changed in mir: | |
status: | Fix Committed → Fix Released |
We also see mir_demo_server failing to parse platform specific switches (e.g. --vt 1)
It looks as though the cause is:
2254. By Andreas Pokorny on 2015-01-23
Add server-side platform probing support.
Modules are checked in MIR_SERVER_ PLATFORM_ PATH, with configuration overrides available to both force a specific module and to check in a specific path.
Modules are probed to determine whether they can drive the available hardware. If a real platform - Android or Mesa - is capable of driving the hardware then it is used; otherwise the stub platform is loaded.