A frozen client can hang the whole server
Bug #1350207 reported by
Daniel van Vugt
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Critical
|
Alexandros Frantzis | ||
0.6 |
Won't Fix
|
Undecided
|
Unassigned | ||
0.7 |
Fix Released
|
Critical
|
Alexandros Frantzis | ||
mir (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
mir (Ubuntu RTM) |
Fix Released
|
High
|
Unassigned |
Bug Description
A frozen Mir client can hang the whole server
Test case:
1. mir_demo_
2. mir_demo_
3. In the egltriangle terminal window hit Ctrl+S to freeze the terminal output and the client.
4. Resize the frozen egltriangle window lots (Alt+middlebutt
5. Move the mouse around on the server.
Expected: The mouse can still move.
Observed: The mouse is frozen until the client is unfrozen (Ctrl+Q).
The same happens if you stop the client process using normal Unix signals:
killall -STOP mir_demo_
The server quickly becomes frozen, until the client is unfrozen with:
killall -CONT mir_demo_
Related branches
lp://staging/~afrantzis/mir/fix-1350207-unresponsive-clients
- Daniel van Vugt: Approve
- Alberto Aguirre (community): Approve
- Kevin DuBois (community): Approve
- Chris Halse Rogers: Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 293 lines (+158/-15)9 files modifiedsrc/server/frontend/socket_messenger.cpp (+21/-5)
tests/acceptance-tests/CMakeLists.txt (+1/-0)
tests/acceptance-tests/test_unresponsive_client.cpp (+122/-0)
tests/include/mir_test/cross_process_action.h (+2/-1)
tests/include/mir_test_framework/display_server_test_fixture.h (+1/-1)
tests/include/mir_test_framework/testing_process_manager.h (+1/-1)
tests/mir_test/cross_process_action.cpp (+2/-2)
tests/mir_test_framework/display_server_test_fixture.cpp (+2/-2)
tests/mir_test_framework/testing_process_manager.cpp (+6/-3)
lp://staging/mir/0.7
- Daniel van Vugt: Approve
- PS Jenkins bot (community): Approve (continuous-integration)
- Cemil Azizoglu (community): Approve
-
Diff: 512 lines (+201/-46)14 files modifiedCMakeLists.txt (+1/-1)
cmake/EnableCoverageReport.cmake (+26/-26)
debian/changelog (+14/-0)
debian/control (+0/-2)
include/test/mir_test/auto_unblock_thread.h (+2/-2)
include/test/mir_test/cross_process_action.h (+2/-1)
include/test/mir_test_framework/display_server_test_fixture.h (+1/-1)
include/test/mir_test_framework/testing_process_manager.h (+1/-1)
src/server/frontend/socket_messenger.cpp (+21/-5)
tests/acceptance-tests/CMakeLists.txt (+1/-0)
tests/acceptance-tests/test_unresponsive_client.cpp (+122/-0)
tests/mir_test/cross_process_action.cpp (+2/-2)
tests/mir_test_framework/display_server_test_fixture.cpp (+2/-2)
tests/mir_test_framework/testing_process_manager.cpp (+6/-3)
Changed in mir: | |
milestone: | 0.6.0 → 0.7.0 |
description: | updated |
Changed in mir: | |
milestone: | 0.7.0 → 0.8.0 |
Changed in mir: | |
assignee: | nobody → Alexandros Frantzis (afrantzis) |
Changed in mir: | |
status: | Triaged → In Progress |
Changed in mir: | |
milestone: | 0.8.0 → 0.9.0 |
Changed in mir (Ubuntu): | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in mir: | |
milestone: | 0.9.0 → 0.8.0 |
no longer affects: | mir/0.8 |
Changed in mir: | |
milestone: | 0.8.0 → 0.7.3 |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in mir (Ubuntu RTM): | |
importance: | Undecided → High |
status: | New → Fix Released |
To post a comment you must log in.
I can't reproduce this, everything works as expected for me, with both Ctrl+Q and SIGSTOP.