Window geometries not saved until unity8 exits when number of CPU cores too low
Bug #1675424 reported by
Florian Boucault
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical System Image |
Fix Released
|
Medium
|
Michał Sawicz | ||
unity8 (Ubuntu) |
Fix Released
|
Medium
|
Florian Boucault |
Bug Description
WindowStateStorage uses QtConcurrent::run with the default QThreadPool to write in the SQLite database. But the functions passed are not guaranteed to be executed if there is no available thread in the pool.
Steps to reproduce reliably:
1. Use a computer (or a VM) with only one CPU core
2. Start any app
3. Resize the app window
4. Close the app
5. Restart the same app
Expected result:
After the app is restarted the window size is back to the size given by the user.
Current result:
After the app is restarted the window size is the default size.
However if unity8 is restarted the geometry is then correctly saved to DB and correctly restored after the app is launched.
Related branches
lp:~fboucault/unity8/window_state_storage_max_thread_fix
- Lukáš Tinkl (community): Approve
- Unity8 CI Bot: Approve (continuous-integration)
-
Diff: 30 lines (+3/-1)2 files modifiedplugins/Utils/windowstatestorage.cpp (+1/-1)
plugins/Utils/windowstatestorage.h (+2/-0)
Changed in unity8 (Ubuntu): | |
assignee: | nobody → Florian Boucault (fboucault) |
status: | New → In Progress |
tags: | added: unity8-desktop |
Changed in canonical-devices-system-image: | |
status: | New → In Progress |
importance: | Undecided → Medium |
Changed in unity8 (Ubuntu): | |
importance: | Undecided → Medium |
Changed in canonical-devices-system-image: | |
assignee: | nobody → Michał Sawicz (saviq) |
milestone: | none → u8c-z |
Changed in canonical-devices-system-image: | |
status: | In Progress → Fix Released |
To post a comment you must log in.
This bug was fixed in the package unity8 - 8.15+17. 04.20170328. 3-0ubuntu1
--------------- 04.20170328. 3-0ubuntu1) zesty; urgency=medium
unity8 (8.15+17.
[ Albert Astals Cid ] nMocks: Initialize m_state and m_requestedState
* mock: Remove empty property and move invokable
* Tune quicklist item selection
* Fix unminimizing going to the wrong position the second time (LP:
#1671458)
* Remove unclickable gaps on the menubar (LP: #1672722)
* indicators client is a tool
* Make sure we destroy the popups when the item goes away (LP:
#1670338)
* UnityApplicatio
* Don't use appInfo after checking it if is null
* Initialize m_privateMode
* Hook up aboutToShow for overflow menus (LP: #1676016)
[ Daniel d'Andrada ]
* Give active focus to child surface qml items (LP: #1671072)
* Satellite child windows (LP: #1673415)
* Tell qtmir/miral about the available desktop area
[ Florian Boucault ] Storage: :saveValue always has a thread available to
* WindowStateStorage: use a private QThreadPool to ensure that
WindowState
execute the query in. (LP: #1675424)
[ Lukáš Tinkl ] ssionService (LP: #1676426)
* Protect against loading invalid window geometry (LP: #1674262)
* Remove usage of the deprecated (and non-functional) system-image-
dbus service.
* Implement Ctrl+Alt+T to launch the terminal app (LP: #1673500)
* Only take normal and dialog surface types into account for launcher
items (LP: #1669047)
* Fix the shutdown dialog after recent refactoring in
DBusUnitySe
[ Michael Zanetti ]
* drop the grey background behind icons in the drawer (LP: #1675688)
[ Pete Woods ] :isPC, and add tests (LP: #1670657)
* Fix Unity/Platform:
-- Michał Sawicz <email address hidden> Tue, 28 Mar 2017 21:50:20 +0000