Bug 397537

Summary: Freeze after losing connection to mounted remote filesystem
Product: [Plasma] plasmashell Reporter: Oleg Solovyov <mcpain>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: nate, shout
Priority: NOR    
Version: 5.12.6   
Target Milestone: 1.0   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 5.14.0

Description Oleg Solovyov 2018-08-17 07:22:52 UTC
plasmashell freezes when connection to mounted remote FS is lost for any reason.
It always freezes right after startup or sometimes at XX:01:01

How to reproduce:
1. Mount any remote filesystem (nfs, samba, sshfs, etc)
2. Down the connection
3. Restart plasmashell
OR
3. Set time to XX:01:00
4. Enjoy freezing
Comment 1 Oleg Solovyov 2018-08-17 07:49:32 UTC
Created a revision:

https://phabricator.kde.org/D14895
Comment 2 Nate Graham 2018-09-12 23:12:58 UTC
Git commit e1c19ce4daf92a14dee44b44d199672034a346c0 by Nathaniel Graham, on behalf of Oleg Solovyov.
Committed on 12/09/2018 at 23:12.
Pushed by ngraham into branch 'master'.

Plasmashell freezes when trying to get free space info from mounted remote filesystem after losing connection to it

Summary:

Earlier plasmashell assumed that you'll get free space info immediately (which is not true in case of losing connection to server containing a mounted filesystem - statfs will wait for response forever and freeze everything since it's happening in main thread)

I moved obtaining that info into different thread so that case won't freeze anything anymore.
It creates exactly one thread per one path. If a path is already being processed, new thread won't be created.
Also I implemented a timer used to notify about broken connection after 15 seconds.

Reviewers: broulik, ngraham, davidedmundson

Reviewed By: broulik

Subscribers: ngraham, anthonyfieroni, davidedmundson, plasma-devel

Tags: #plasma

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

M  +1    -0    dataengines/soliddevice/CMakeLists.txt
M  +36   -7    dataengines/soliddevice/soliddeviceengine.cpp
M  +3    -0    dataengines/soliddevice/soliddeviceengine.h

https://commits.kde.org/plasma-workspace/e1c19ce4daf92a14dee44b44d199672034a346c0
Comment 3 Kai Uwe Broulik 2018-10-19 13:30:13 UTC
Git commit be3b80e78017cc6668f9227529ad429150c27faa by Kai Uwe Broulik, on behalf of Oleg Solovyov.
Committed on 19/10/2018 at 13:29.
Pushed by broulik into branch 'Plasma/5.12'.

Plasmashell freezes when trying to get free space info from mounted remote filesystem after losing connection to it

Summary:
Related: bug 399945

Earlier plasmashell assumed that you'll get free space info immediately (which is not true in case of losing connection to server containing a mounted filesystem - statfs will wait for response forever and freeze everything since it's happening in main thread)

I moved obtaining that info into different thread so that case won't freeze anything anymore.
It creates exactly one thread per one path. If a path is already being processed, new thread won't be created.
Also I implemented a timer used to notify about broken connection after 15 seconds.

Reviewers: broulik, ngraham, davidedmundson

Reviewed By: broulik

Subscribers: ngraham, anthonyfieroni, davidedmundson, plasma-devel

Tags: #plasma

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

Backported to 5.12 LTS (sans notification due to new strings) for impact to corporate setups

(cherry picked from commit e1c19ce4daf92a14dee44b44d199672034a346c0)

M  +22   -7    dataengines/soliddevice/soliddeviceengine.cpp
M  +2    -0    dataengines/soliddevice/soliddeviceengine.h

https://commits.kde.org/plasma-workspace/be3b80e78017cc6668f9227529ad429150c27faa
Comment 4 Kai Uwe Broulik 2018-10-19 13:34:56 UTC
*** Bug 399945 has been marked as a duplicate of this bug. ***