[regression] Black screen: Mir hangs and then crashes on startup/login due to reading from /dev/random
Bug #1536662 reported by
Josh Arenson
This bug affects 3 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Critical
|
Daniel van Vugt | ||
0.19 |
Won't Fix
|
Critical
|
Unassigned | ||
0.20 |
Won't Fix
|
Critical
|
Unassigned | ||
0.21 |
Won't Fix
|
Critical
|
Unassigned | ||
Unity System Compositor |
Fix Released
|
Critical
|
Brandon Schaefer | ||
mir (Ubuntu) |
Fix Released
|
Critical
|
Unassigned | ||
unity-system-compositor (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
cookie_factory attempts to read data from /dev/random at boot, and blocks until it has enough random data or timesout after 30 seconds.
How I can reproduce
1. Run the Unity8 greeter as a mir server
2. Reboot
Expected behavior: Greeter is displayed as mir && USC run happily
Actual behavior: Mir throws an exception after 30 seconds
Work-around:
Before logging in, move the mouse around lots, for at least 20 seconds. And after logging in, while you're looking at a black screen, move the mouse around furiously. This will populate the kernel entropy pool sufficiently to avoid the hang and crash.
Related branches
lp://qastaging/~mir-team/unity-system-compositor/override-cookie-authority
- PS Jenkins bot (community): Approve (continuous-integration)
- Chris Halse Rogers: Approve
- Alberto Aguirre (community): Approve
- Andreas Pokorny (community): Approve
-
Diff: 58 lines (+34/-0)1 file modifiedsrc/server.cpp (+34/-0)
lp://qastaging/~mir-team/mir/handle-mis-shaped-cookies
Rejected
for merging
into
lp://qastaging/mir
- Alan Griffiths: Disapprove
- Daniel van Vugt: Abstain
- PS Jenkins bot (community): Approve (continuous-integration)
- Mir CI Bot: Approve (continuous-integration)
- Andreas Pokorny (community): Approve
-
Diff: 249 lines (+203/-3)4 files modifiedsrc/server/input/default_event_builder.cpp (+4/-2)
src/server/input/key_repeat_dispatcher.cpp (+2/-1)
tests/acceptance-tests/CMakeLists.txt (+1/-0)
tests/acceptance-tests/test_server_cookie_authority.cpp (+196/-0)
lp://qastaging/~mir-team/unity-system-compositor/cookie-entropy-workaround
- PS Jenkins bot (community): Approve (continuous-integration)
- Alexandros Frantzis (community): Approve
-
Diff: 13 lines (+3/-1)1 file modifiedsrc/server.cpp (+3/-1)
lp://qastaging/~vanvugt/mir/test-without-entropy
- Chris Halse Rogers: Approve
- Mir CI Bot: Approve (continuous-integration)
- Kevin DuBois (community): Approve
- Cemil Azizoglu (community): Approve
-
Diff: 86 lines (+52/-0)2 files modifiedtests/acceptance-tests/test_server_startup.cpp (+29/-0)
tests/unit-tests/test_mir_cookie.cpp (+23/-0)
lp://qastaging/~vanvugt/mir/run-without-entropy
- Mir CI Bot: Approve (continuous-integration)
- Daniel van Vugt: Approve
- Alan Griffiths: Abstain
- Alexandros Frantzis (community): Approve
- Brandon Schaefer (community): Approve
- Chris Halse Rogers: Needs Information
-
Diff: 115 lines (+15/-54)3 files modifiedsrc/cookie/authority.cpp (+12/-51)
tests/acceptance-tests/test_server_startup.cpp (+1/-1)
tests/unit-tests/test_mir_cookie.cpp (+2/-2)
lp://qastaging/~mir-team/mir/lazy-cookie-secret-creation
On hold
for merging
into
lp://qastaging/mir
- Daniel van Vugt: Disapprove
- Mir CI Bot: Needs Fixing (continuous-integration)
- Cemil Azizoglu (community): Needs Fixing
-
Diff: 88 lines (+20/-9)3 files modifiedsrc/cookie/authority.cpp (+18/-7)
tests/acceptance-tests/test_server_startup.cpp (+1/-1)
tests/unit-tests/test_mir_cookie.cpp (+1/-1)
lp://qastaging/~vanvugt/mir/test-without-entropy-more
- Mir CI Bot: Approve (continuous-integration)
- Cemil Azizoglu (community): Approve
- Alan Griffiths: Abstain
-
Diff: 60 lines (+33/-6)1 file modifiedtests/unit-tests/test_mir_cookie.cpp (+33/-6)
Changed in mir: | |
assignee: | nobody → Brandon Schaefer (brandontschaefer) |
importance: | Undecided → High |
status: | New → In Progress |
Changed in mir: | |
milestone: | 0.19.0 → 0.20.0 |
milestone: | 0.20.0 → 0.19.0 |
Changed in unity-system-compositor: | |
status: | New → In Progress |
Changed in mir: | |
status: | In Progress → Confirmed |
importance: | High → Low |
Changed in unity-system-compositor: | |
importance: | Undecided → High |
Changed in mir: | |
importance: | Low → Medium |
Changed in unity-system-compositor: | |
assignee: | nobody → Brandon Schaefer (brandontschaefer) |
Changed in unity-system-compositor: | |
milestone: | none → 0.3.1 |
Changed in unity-system-compositor: | |
milestone: | 0.3.1 → 0.4.0 |
Changed in unity-system-compositor: | |
status: | Fix Committed → In Progress |
milestone: | 0.4.0 → 0.4.1 |
Changed in mir: | |
milestone: | 0.19.0 → 0.20.0 |
Changed in mir: | |
importance: | Medium → High |
Changed in unity-system-compositor: | |
status: | In Progress → Fix Committed |
summary: |
- [regression] Mir blocks at system boot due to reading from /dev/random + [regression] Mir hangs and then crashes at system boot due to reading + from /dev/random |
Changed in mir: | |
importance: | High → Critical |
Changed in unity-system-compositor: | |
importance: | High → Critical |
description: | updated |
description: | updated |
summary: |
- [regression] Mir hangs and then crashes at system boot due to reading - from /dev/random + [regression] Mir hangs and then crashes due to reading from /dev/random |
Changed in unity-system-compositor: | |
status: | Fix Committed → In Progress |
Changed in mir: | |
status: | Confirmed → In Progress |
Changed in unity-system-compositor: | |
milestone: | 0.4.1 → 0.4.2 |
summary: |
- [regression] Mir hangs and then crashes due to reading from /dev/random + [regression] Mir hangs and then crashes on login due to reading from + /dev/random |
summary: |
- [regression] Mir hangs and then crashes on login due to reading from - /dev/random + [regression] Black screen: Mir hangs and then crashes on login due to + reading from /dev/random |
Changed in unity-system-compositor: | |
status: | In Progress → Fix Committed |
Changed in mir: | |
status: | In Progress → Triaged |
Changed in mir: | |
milestone: | 0.20.0 → 0.21.0 |
Changed in mir: | |
milestone: | 0.21.0 → none |
summary: |
- [regression] Black screen: Mir hangs and then crashes on login due to - reading from /dev/random + [regression] Black screen: Mir hangs and then crashes on startup/login + due to reading from /dev/random |
Changed in mir (Ubuntu): | |
importance: | Undecided → High |
status: | Confirmed → Triaged |
Changed in mir: | |
assignee: | Brandon Schaefer (brandontschaefer) → Daniel van Vugt (vanvugt) |
milestone: | none → 0.21.0 |
status: | Triaged → In Progress |
Changed in mir: | |
status: | Fix Committed → In Progress |
Changed in mir: | |
importance: | High → Critical |
Changed in mir (Ubuntu): | |
importance: | High → Critical |
Changed in mir: | |
status: | In Progress → Fix Committed |
Changed in mir: | |
status: | Fix Committed → In Progress |
Changed in mir: | |
milestone: | 0.21.0 → 0.22.0 |
tags: | added: black-screen |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in unity-system-compositor: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Seems to have come from r2943 (?)
------- ------- ------- ------- ------- ------- ------- ------- ----
revno: 2943 [merge]
author: Brandon Schaefer <email address hidden>, Alan Griffiths <email address hidden>
committer: Tarmac
branch nick: development-branch
timestamp: Thu 2015-09-17 23:46:51 +0000
message:
server: Added a CookieFactory which generates macs for keyboard/motions events.
library: CookieFactory creates macs based on timestamp info.
Approved by Brandon Schaefer, Andreas Pokorny, Alexandros Frantzis, Kevin DuBois, PS Jenkins bot, Alan Griffiths, Chris Halse Rogers. ------- ------- ------- ------- ------- ------- ------- ----
-------
So that means the bug has been around since Mir 0.17 at least.