Re: Does nautilus hang if an NFS server is unreachable?
- From: Owen Taylor <otaylor redhat com>
- To: Michael Meeks <michael ximian com>
- Cc: Havoc Pennington <hp redhat com>, "Peter O'Shea" <peter oshea analog com>, nautilus-list gnome org
- Subject: Re: Does nautilus hang if an NFS server is unreachable?
- Date: 24 Feb 2003 12:40:27 -0500
On Mon, 2003-02-24 at 06:46, Michael Meeks wrote:
> On Sun, 2003-02-23 at 18:36, Havoc Pennington wrote:
> > On Sun, Feb 23, 2003 at 12:40:49PM -0500, Peter O'Shea wrote:
> > > Is nautilus waiting for this server to become available? Isn't there a
> > > timeout specified somewhere?
> >
> > The timeout is normally in the kernel. Design bug in NFS; if you touch
> > an NFS filesystem that's hung, then your app hangs, and there is no
> > way to avoid it. (Other than using threads.)
>
> It's worse than that - there's no way of knowing reliably whether a
> file is on an NFS mount AFAIR, short of statting it - which causes the
> thread to block permanantly.
>
> Gnome-vfs uses a thread-pool - and as sys-calls are made on the NFS
> mount, they destroy thread after thread until everything is jammed up
> solid.
>
> Of course - there are some partial hacks that can be done to improve
> the situation generally, but they are all partial ones. eg. we could try
> and allocate thread pools / dispatch jobs based on the path prefix; eg.
> all of '/home' in 3 threads, all of '/usr' in another 2, and 5 for
> random other things [ or something ]. But it's not so clear how to make
> that work well :-) a nice simple solution that detected 'slow' prefixes,
> and limited their thread swallowing potential may help but ...
I think it's best to assume that if you have an unreachable NFS server,
then you are screwed and you should go off and do something else until
your sysadmin fixes it. It's not just nautilus, anything else that
touches it has the same problem.
The only alternative would be a usermode gnome-vfs backend for NFS and
never mount your NFS shares at all...
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]