Unity8 deadlock when trying to screenshot without a current gst registry
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| Canonical System Image |
High
|
Michał Sawicz | ||
| Clutter GStreamer Bindings |
Fix Released
|
Medium
|
||
| clutter-gst-3.0 (Ubuntu) |
High
|
Unassigned | ||
| qtmir (Ubuntu) |
High
|
Albert Astals Cid | ||
Bug Description
The Ubuntu Error Tracker has been receiving reports about a problem regarding unity8. This problem was most recently seen with version 8.11+16.
Inspecting gst-clutter causes it to try and connect to the display server. When it's unity8 that triggered the registry update, registry generation blocks while gst-clutter tries to connect back to unity8. That results in a deadlock, because we're unable to answer the authorization challenge because we're blocked by the registry generation.
This is a bug in either gst-clutter or libclutter (filed upstream), but we should try and make sure that we don't block on this either.
To reproduce:
- log in to unity8
- rm ~/.cache/
- press PrtScr to get a screenshot
- deadlock
To recover:
- run gst-inspect-1.0 somewhere
Related branches
- Gerry Boland (community): Approve on 2017-03-24
- Unity8 CI Bot (community): Approve (continuous-integration) on 2017-03-24
-
Diff: 607 lines (+133/-75)6 files modifiedsrc/modules/Unity/Application/application.cpp (+0/-27)
src/modules/Unity/Application/application.h (+0/-4)
src/modules/Unity/Application/application_manager.cpp (+120/-36)
src/modules/Unity/Application/application_manager.h (+12/-0)
src/modules/Unity/Application/taskcontroller.cpp (+1/-6)
src/modules/Unity/Application/taskcontroller.h (+0/-2)
affects: | unity8 (Ubuntu) → qtmultimedia-opensource-src (Ubuntu) |
description: | updated |
description: | updated |
Launchpad Janitor (janitor) wrote : | #1 |
Changed in qtmultimedia-opensource-src (Ubuntu): | |
status: | New → Confirmed |
description: | updated |
Changed in canonical-devices-system-image: | |
assignee: | nobody → John McAleely (john.mcaleely) |
milestone: | none → backlog |
status: | New → Confirmed |
Michał Sawicz (saviq) wrote : | #2 |
Just managed to find that the culprit is actually the clutter plugin (gstreamer1.
no longer affects: | qtmultimedia-opensource-src (Ubuntu) |
summary: |
- /usr/bin/unity8:6:__GI_ppoll:ppoll:gst_poll_wait:exchange_packets:plugin_loader_free + inspecting clutter plugin hangs outside X11 |
description: | updated |
description: | updated |
There are suspect code blocks like the following:
#if defined (CLUTTER_
/* Required by some GStreamer element like VA */
XInitThreads ();
#endif
But that doesn't seem to be the problem, even if looks really shady (AFAICT basically means that if clutter was built with x11 support, it will call XInitThreads(), even if you're not actually running under X11).
Launchpad Janitor (janitor) wrote : | #4 |
Status changed to 'Confirmed' because the bug affects multiple users.
Changed in clutter-gst-3.0 (Ubuntu): | |
status: | New → Confirmed |
Changed in clutter-gst-3.0 (Ubuntu): | |
importance: | Undecided → High |
Changed in clutter-gst-3.0 (Ubuntu): | |
assignee: | nobody → John McAleely (john.mcaleely) |
status: | Confirmed → Triaged |
Changed in clutter-gst-3.0 (Ubuntu): | |
assignee: | John McAleely (john.mcaleely) → nobody |
Iain Lane (laney) wrote : | #5 |
Will just pointed me to this. Any chance that someone could forward this bug to upstream, or link the bug if it's already been done?
Changed in canonical-devices-system-image: | |
assignee: | John McAleely (john.mcaleely) → nobody |
Changed in canonical-devices-system-image: | |
milestone: | backlog → u8c-1 |
status: | Confirmed → Triaged |
importance: | Undecided → High |
Changed in canonical-devices-system-image: | |
assignee: | nobody → Michał Sawicz (saviq) |
Albert Astals Cid (aacid) wrote : | #6 |
> Will just pointed me to this. Any chance that someone could forward this bug to upstream, or link the bug if it's already been done?
Albert Astals Cid (aacid) wrote : | #7 |
Looking at the backtrace i get nowadays http://
Is this even still a bug? I can only reproduce it if i am on a VT and run the commands, then it gets stuck but if i loggin into a clean unity8 session having cleaned the file, it's all fine.
I'm confused now :S
Michał Sawicz (saviq) wrote : | #8 |
There was a change in when we trigger the registry (as in we don't on startup), but I've been getting the same hangs when trying to take a screenshot in unity8 (which triggers a sound).
Michał Sawicz (saviq) wrote : | #9 |
Starting unity8 without the registry present and taking a screenshot results in: http://
Michał Sawicz (saviq) wrote : | #10 |
And gst-plugin-scanner hangs with: http://
summary: |
- inspecting clutter plugin hangs outside X11 + Unity8 deadlock when trying to screenshot without a current gst registry |
description: | updated |
Changed in clutter-gst-3.0 (Ubuntu): | |
status: | Triaged → New |
importance: | High → Undecided |
Changed in qtmir (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → High |
assignee: | nobody → Gerry Boland (gerboland) |
description: | updated |
Changed in canonical-devices-system-image: | |
milestone: | u8c-1 → u8c-2 |
milestone: | u8c-2 → u8c-z |
Gerry Boland (gerboland) wrote : | #11 |
Would be good if QtMir didn't authenticate processes on the GUI thread, but on the relevant Mir thread. This should be possible.
Changed in clutter-gst: | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
Launchpad Janitor (janitor) wrote : | #12 |
Status changed to 'Confirmed' because the bug affects multiple users.
Changed in clutter-gst-3.0 (Ubuntu): | |
status: | New → Confirmed |
tags: | added: unity8-desktop |
Changed in canonical-devices-system-image: | |
status: | Triaged → In Progress |
Changed in qtmir (Ubuntu): | |
status: | Triaged → In Progress |
assignee: | Gerry Boland (gerboland) → Albert Astals Cid (aacid) |
Changed in clutter-gst-3.0 (Ubuntu): | |
importance: | Undecided → High |
Changed in clutter-gst: | |
status: | Confirmed → Fix Released |
Launchpad Janitor (janitor) wrote : | #13 |
This bug was fixed in the package qtmir - 0.5.1+17.
---------------
qtmir (0.5.1+
[ Alan Griffiths ]
* MirAL will be correcting another spelling error shortly. Avoid an
FTBFS when that happens.
* Compatibility with lp:mir and lp:~alan-griffiths/miral/1.3
[ Albert Astals Cid ]
* Remove empty property and move invokable
* Run ApplicationMana
#1525285)
[ Andreas Pokorny ]
* Report and consume exception that may occur on constructing a keymap
(LP: #1557634)
[ Daniel d'Andrada ]
* Ensure the window that got a key down also gets the corresponding
key up (LP: #1671072)
[ Gerry Boland ]
* Don't let a child window go offscreen because its parent moved
* Add env var equivalent to desktop_file_hint
[ Lukáš Tinkl ]
* Raise (activate) windows when an app focus is requested (LP:
#1672337)
-- Michał Sawicz <email address hidden> Tue, 28 Mar 2017 17:14:50 +0000
Changed in qtmir (Ubuntu): | |
status: | In Progress → Fix Released |
Changed in canonical-devices-system-image: | |
status: | In Progress → Fix Released |
Status changed to 'Confirmed' because the bug affects multiple users.