Trusted prompts need to be part of the lifecycle
Bug #1384950 reported by
Michał Sawicz
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical System Image |
Fix Released
|
High
|
Unassigned | ||
Mir |
Fix Released
|
Medium
|
Nick Dedekind | ||
0.8 |
Fix Released
|
Medium
|
Cemil Azizoglu | ||
mir (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
mir (Ubuntu RTM) |
Fix Released
|
Undecided
|
Cemil Azizoglu | ||
pay-service (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
qtmir (Ubuntu) |
Fix Released
|
Undecided
|
Nick Dedekind | ||
qtmir (Ubuntu RTM) |
Fix Released
|
Undecided
|
Michał Sawicz | ||
trust-store (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
ubuntu-system-settings-online-accounts (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
After we fix bug #1355173, we'll be "leaking" trusted prompts in the sense that when an app gets unfocused (and potentially killed subsequently), the trusted prompts will be left running, not suspended with the app. We should apply the same rules to the whole app container (can we use ual? add the prompts to the pgroup/cgroup?).
This needs an escape route, too, for trusted helpers to be able to kill prompts as they need to.
Related branches
lp://staging/~nick-dedekind/qtmir/1355173.trust-prompt-suspend
- Gerry Boland (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 117 lines (+73/-2)3 files modifiedsrc/modules/Unity/Application/session.cpp (+14/-1)
tests/modules/SessionManager/session_test.cpp (+58/-0)
tests/modules/common/mock_mir_session.h (+1/-1)
lp://staging/~nick-dedekind/mir/1355173.trust-prompt-suspend
- PS Jenkins bot (community): Approve (continuous-integration)
- Alberto Aguirre (community): Approve
- Alan Griffiths: Approve
- Cemil Azizoglu (community): Approve
-
Diff: 860 lines (+445/-45)26 files modifiedclient-ABI-sha1sums (+1/-1)
common-ABI-sha1sums (+1/-1)
include/common/mir_toolkit/common.h (+2/-1)
include/server/mir/scene/prompt_session.h (+24/-0)
include/server/mir/scene/prompt_session_listener.h (+2/-0)
include/server/mir/scene/prompt_session_manager.h (+12/-0)
include/server/mir/scene/session.h (+2/-0)
platform-ABI-sha1sums (+1/-1)
server-ABI-sha1sums (+5/-5)
src/include/server/mir/scene/null_prompt_session_listener.h (+2/-0)
src/server/scene/CMakeLists.txt (+1/-0)
src/server/scene/application_session.cpp (+18/-0)
src/server/scene/application_session.h (+2/-0)
src/server/scene/prompt_session_impl.cpp (+81/-0)
src/server/scene/prompt_session_impl.h (+50/-0)
src/server/scene/prompt_session_manager_impl.cpp (+22/-9)
src/server/scene/prompt_session_manager_impl.h (+6/-0)
tests/acceptance-tests/test_prompt_session_client_api.cpp (+53/-24)
tests/include/mir_test_doubles/mock_prompt_session_listener.h (+2/-0)
tests/include/mir_test_doubles/mock_scene_session.h (+2/-0)
tests/include/mir_test_doubles/null_prompt_session.h (+16/-0)
tests/include/mir_test_doubles/null_prompt_session_manager.h (+8/-0)
tests/include/mir_test_doubles/stub_scene_session.h (+8/-0)
tests/unit-tests/scene/CMakeLists.txt (+1/-0)
tests/unit-tests/scene/test_prompt_session_impl.cpp (+110/-0)
tests/unit-tests/scene/test_prompt_session_manager.cpp (+13/-3)
lp://staging/~mir-team/qtmir/rtm-14.09-staging
- Michał Sawicz: Approve
-
Diff: 261 lines (+121/-6)10 files modifieddebian/changelog (+13/-0)
debian/control (+1/-1)
src/modules/Unity/Application/session.cpp (+14/-1)
src/platforms/mirserver/promptsessionlistener.cpp (+12/-0)
src/platforms/mirserver/promptsessionlistener.h (+4/-0)
src/platforms/mirserver/qteventfeeder.cpp (+7/-0)
tests/modules/SessionManager/session_test.cpp (+58/-0)
tests/modules/common/mock_mir_session.h (+3/-1)
tests/modules/common/mock_prompt_session.h (+5/-0)
tests/modules/common/mock_prompt_session_manager.h (+4/-3)
Changed in unity8 (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Medium |
assignee: | nobody → Nick Dedekind (nick-dedekind) |
Changed in mir: | |
assignee: | nobody → Nick Dedekind (nick-dedekind) |
milestone: | none → 0.10.0 |
status: | New → In Progress |
Changed in mir: | |
importance: | Undecided → Medium |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in unity8 (Ubuntu): | |
status: | Triaged → In Progress |
Changed in qtmir (Ubuntu): | |
status: | New → In Progress |
assignee: | nobody → Nick Dedekind (nick-dedekind) |
no longer affects: | unity8 (Ubuntu) |
no longer affects: | unity8 (Ubuntu RTM) |
Changed in mir (Ubuntu RTM): | |
status: | New → In Progress |
assignee: | nobody → Cemil Azizoglu (cemil-azizoglu) |
Changed in pay-service (Ubuntu): | |
status: | New → Triaged |
Changed in qtmir (Ubuntu RTM): | |
status: | New → Triaged |
Changed in pay-service (Ubuntu): | |
status: | Triaged → New |
Changed in qtmir (Ubuntu RTM): | |
assignee: | nobody → Michał Sawicz (saviq) |
Changed in qtmir (Ubuntu RTM): | |
status: | Triaged → In Progress |
Changed in canonical-devices-system-image: | |
status: | Confirmed → In Progress |
Changed in qtmir (Ubuntu RTM): | |
milestone: | none → 14.09-ota-2 |
Changed in mir (Ubuntu RTM): | |
milestone: | none → 14.09-ota-2 |
Changed in mir (Ubuntu RTM): | |
status: | In Progress → Fix Released |
Changed in canonical-devices-system-image: | |
status: | In Progress → Fix Released |
To post a comment you must log in.
I'm not too sure about suspending the prompt helper along with the application, since it's a long running service in some cases. This is where the logic for bailing out of prompts should be (not in the prompt providers UIs)
The prompt providers UIs are fine to suspend since they're only associated with one instance of a prompt session (process/control group would help here).
We have a prompt session state (stopped/started), which could be modified to accept a suspend state. We could pick this up in the prompt helper client and do the necessary (start time-out/whatever)