https://bugs.kde.org/show_bug.cgi?id=379997

David Faure <fa...@kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|CONFIRMED                   |RESOLVED
      Latest Commit|                            |https://commits.kde.org/ako
                   |                            |nadi/f8d59a48e68fc89949bd16
                   |                            |cf97097f207f609324
         Resolution|---                         |FIXED

--- Comment #2 from David Faure <fa...@kde.org> ---
Git commit f8d59a48e68fc89949bd16cf97097f207f609324 by David Faure.
Committed on 09/12/2017 at 20:58.
Pushed by dfaure into branch 'master'.

ErrorOverlay: don't show by mistake if called with Running twice.

Summary:
If serverStateChanged(Running) is called twice, the first time
this would hide the overlay and set mOverlayActive=false,
so the second time this goes into the else branch, which
shows the overlay...

The reason it's called twice isn't because ServerManager
emits stateChanged(Running) twice, obviously (it only emits on actual
change). The reason is that the ErrorOverlay constructor calls
serverStateChanged(state) and connects to &ServerManager::stateChanged.
It can happen that for this initial state, ServerManager::state() finds
out "Running" before ServerManager gets a chance to notice by itself
and emit stateChanged().

Test Plan:
Found with debug output, during session startup,
over many weeks (it's clearly a race condition).

Reviewers: dvratil, vkrause

Reviewed By: dvratil

Subscribers: #kde_pim

Tags: #kde_pim

Differential Revision: https://phabricator.kde.org/D9264

M  +7    -5    src/widgets/erroroverlay.cpp

https://commits.kde.org/akonadi/f8d59a48e68fc89949bd16cf97097f207f609324

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to