[regression] Mir clients get caught in an infinite exception loop when the server goes away ("Caught exception at Mir/EGL driver boundary")
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
High
|
Alexandros Frantzis | ||
0.6 |
Won't Fix
|
High
|
Unassigned | ||
0.7 |
Fix Released
|
High
|
Alexandros Frantzis | ||
mir (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
Nexus4: Mir client gets caught in an infinite exception loop if the server crashes ("Caught exception at Mir/EGL driver boundary")
Test case:
1. mir_demo_
2. mir_demo_
3. Press the power button to sleep
4. Press the power button again to wake up
Expected: Rendering continues on screen after wakeup
Observed:
Caught exception at Mir/EGL driver boundary: /home/dan/
Dynamic exception type: N5boost16except
std::exception:
9, "Bad file descriptor"
Caught exception at Mir/EGL driver boundary: /home/dan/
Dynamic exception type: N5boost16except
std::exception:
9, "Bad file descriptor"
Caught exception at Mir/EGL driver boundary: /home/dan/
Dynamic exception type: N5boost16except
std::exception:
9, "Bad file descriptor"
.....
Related branches
- Daniel van Vugt: Approve
- PS Jenkins bot (community): Needs Fixing (continuous-integration)
- Alan Griffiths: Approve
- Chris Halse Rogers: Approve
-
Diff: 850 lines (+191/-115)23 files modifiedinclude/test/mir_test_framework/basic_client_server_fixture.h (+2/-0)
include/test/mir_test_framework/display_server_test_fixture.h (+2/-0)
include/test/mir_test_framework/testing_process_manager.h (+3/-2)
src/client/mir_connection.cpp (+6/-1)
tests/acceptance-tests/test_client_cursor_api.cpp (+2/-0)
tests/acceptance-tests/test_client_input.cpp (+2/-0)
tests/acceptance-tests/test_client_library.cpp (+4/-1)
tests/acceptance-tests/test_client_screencast.cpp (+7/-43)
tests/acceptance-tests/test_client_surface_swap_buffers.cpp (+3/-15)
tests/acceptance-tests/test_large_messages.cpp (+3/-0)
tests/acceptance-tests/test_nested_mir.cpp (+2/-0)
tests/acceptance-tests/test_prompt_session_client_api.cpp (+2/-0)
tests/acceptance-tests/test_protobuf.cpp (+6/-3)
tests/acceptance-tests/test_server_disconnect.cpp (+60/-0)
tests/acceptance-tests/test_server_shutdown.cpp (+2/-0)
tests/acceptance-tests/test_stale_frames.cpp (+0/-2)
tests/acceptance-tests/test_test_framework.cpp (+2/-0)
tests/integration-tests/client/test_client_render.cpp (+10/-0)
tests/integration-tests/shell/test_session_lifecycle_event.cpp (+37/-48)
tests/mir_test_framework/display_server_test_fixture.cpp (+5/-0)
tests/mir_test_framework/testing_process_manager.cpp (+12/-0)
tests/mir_test_framework/using_stub_client_platform.cpp (+8/-0)
tests/unit-tests/client/test_client_mir_surface.cpp (+11/-0)
- PS Jenkins bot (community): Needs Fixing (continuous-integration)
- Daniel van Vugt: Approve
- Chris Halse Rogers: Pending requested
- Alan Griffiths: Pending requested
-
Diff: 850 lines (+191/-115)23 files modifiedinclude/test/mir_test_framework/basic_client_server_fixture.h (+2/-0)
include/test/mir_test_framework/display_server_test_fixture.h (+2/-0)
include/test/mir_test_framework/testing_process_manager.h (+3/-2)
src/client/mir_connection.cpp (+6/-1)
tests/acceptance-tests/test_client_cursor_api.cpp (+2/-0)
tests/acceptance-tests/test_client_input.cpp (+2/-0)
tests/acceptance-tests/test_client_library.cpp (+4/-1)
tests/acceptance-tests/test_client_screencast.cpp (+7/-43)
tests/acceptance-tests/test_client_surface_swap_buffers.cpp (+3/-15)
tests/acceptance-tests/test_large_messages.cpp (+3/-0)
tests/acceptance-tests/test_nested_mir.cpp (+2/-0)
tests/acceptance-tests/test_prompt_session_client_api.cpp (+2/-0)
tests/acceptance-tests/test_protobuf.cpp (+6/-3)
tests/acceptance-tests/test_server_disconnect.cpp (+60/-0)
tests/acceptance-tests/test_server_shutdown.cpp (+2/-0)
tests/acceptance-tests/test_stale_frames.cpp (+0/-2)
tests/acceptance-tests/test_test_framework.cpp (+2/-0)
tests/integration-tests/client/test_client_render.cpp (+10/-0)
tests/integration-tests/shell/test_session_lifecycle_event.cpp (+37/-48)
tests/mir_test_framework/display_server_test_fixture.cpp (+5/-0)
tests/mir_test_framework/testing_process_manager.cpp (+12/-0)
tests/mir_test_framework/using_stub_client_platform.cpp (+8/-0)
tests/unit-tests/client/test_client_mir_surface.cpp (+11/-0)
Changed in mir: | |
assignee: | nobody → Alexandros Frantzis (afrantzis) |
tags: | added: rtm14 |
summary: |
[regression] Nexus4: Mir client gets caught in an infinite exception - loop if the server crashes ("Caught exception at Mir/EGL driver + loop when the server goes away ("Caught exception at Mir/EGL driver boundary") |
summary: |
- [regression] Nexus4: Mir client gets caught in an infinite exception - loop when the server goes away ("Caught exception at Mir/EGL driver - boundary") + [regression] Mir client gets caught in an infinite exception loop when + the server goes away ("Caught exception at Mir/EGL driver boundary") |
Changed in mir: | |
status: | Triaged → In Progress |
Changed in mir: | |
status: | In Progress → Fix Committed |
summary: |
- [regression] Mir client gets caught in an infinite exception loop when + [regression] Mir clients get caught in an infinite exception loop when the server goes away ("Caught exception at Mir/EGL driver boundary") |
tags: | added: touch-2014-08-28 |
Changed in mir (Ubuntu): | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in mir: | |
milestone: | 0.8.0 → 0.7.0 |
Changed in mir: | |
milestone: | 0.7.0 → 0.8.0 |
Changed in mir: | |
milestone: | 0.8.0 → none |
status: | Fix Committed → Fix Released |
Unfortunately, being an infinite loop, no core is dumped, nothing is restarted and there's no bug report.