[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Hanging plasmashell



Le mercredi 13 juin 2018, 20:20:07 CEST Martin Steigerwald a écrit :
> Jiri Kanicky - 13.06.18, 16:55:
> > Any mounted system which looses connection will completely hang
> > plasmashell.
> > 
> > For example I mount NFS, close lid and take laptop to work and when I
> > open it plasmashell is hanged.
> > 
> > This has been issue for ages.
> 
> Any process which accesses a file from an NFS mount with the
> corresponding NFS server not reachable will by default hang for as long
> as the NFS server is not reachable.
> 
> This is how Linux filesystems work. Read accesses are usually in-process
> and applications waiting for those to be fulfilled will hang unless they
> use asynchronous (out of process) I/O.
>
> The only way around would be to do all separate all filesystem accesses
> and the GUI painting into different threads or processes or use
> asynchronous I/O with its complexities in error handling everywhere.
> This has not been done for Plasma and I doubt it has been done for any
> other major desktop environment for Linux.
> 
> Of course for the plasmashell process itself the question would be: Why
> does it access the NFS mount anyway? Do you have some widget in the
> plasmashell that accesses anything from the NFS mount? If so, you would
> have to remove it. Most widgets run inside the plasmashell process. This
> indeed is a limitation of Plasma as it mostly has a all in one process
> architecture. Only KRunner and KWin window manager are separate. Most
> KRunner runners run in process… but there has been some work to
> background some costly operations recently if I remember correctly.
> 
> If plasmashell accesses the NFS mount while it would have no reason to…
> then that would be something for a upstream bug report.

I have exactly the same problem : 
No widget, Plasma hang because it try to access a NFS directory. For various 
reasons the NFS server is not answering. The KMenu hangs first, then Dolphin, 
then KRunner.

What about on-demand user mount with x-systemd.automount option in /etc/fstab? 
I thought it would prevent Plasma hanging, but it looks like Plasma try to 
access it even if it's not yet mounted.


> I always thought a multi-process / multi-threading architecture for the
> desktop would be more suitable – especially in order to make Plasmashell
> more crash resistant with buggy widgets –, but according to what I
> remember what Plasma developers said, it is challenging to obtain an
> integrated graphical experience this way. I do not remember the details
> tough. I think I opened an upstream bug report years ago about this.
> Plasmashell uses some threads, but it does not appear that it uses
> different threads for filesystem accesses of widgets and so on.
> 
> Differently on AmigaOS. Even if the whole operating system filesystem
> was gone (i.e. by just killing the filesystem and device tasks for it
> which you could just do on AmigaOS as it is single user without memory
> protection, at least upto AmigaOS 3.x) the GUI was still responsive. At
> least those parts of the GUI that did not access the filesystem. And
> once running the GUI did not do many filesystem accesses anymore unless
> you triggered some.
> 
> So in summary: In order to achieve a responsive desktop with an
> unreachable NFS you´d either have to completely rewrite the architecture
> of the current Plasma desktop… or change the way the Linux kernel I/O
> subsystems works (and alongside of it probably also all the applications
> that use it). I´d really love to see a desktop that is always
> responsive. But so far I think sadly no integrated desktop environment
> with the functionality like Plasma has on Linux or any other Unix
> operating system is even close to that.

It works much better on Gnome . If the NFS server is not reachable, Nautilus 
opens very slowly, but except this, everything work.

> 
> There is still something to be learned from operating system and GUI
> approaches of other operating systems like AmigaOS.

Amiga is still the Graal. Try Haiku, may be ...

Regards,
Xavier

-- 
Librement,
Xavier Brochard 
« La liberté est à l'homme ce que les ailes sont à l'oiseau »
(Jean-Pierre Rosnay)




Reply to: