Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Nov 2005 12:38:40 +0100
From:      Csaba Henk <csaba-ml@creo.hu>
To:        freebsd-hackers@freebsd.org
Subject:   misteries of find(1)
Message-ID:  <20051124113840.GK2911@beastie.creo.hu>

next in thread | raw e-mail | index | archive | help
Hi!

With fuse based filesystems I experienced find(1) giving up after
running for a while, bursting out in a series of "File does not exist"
complaints. (On the contrary, gfind just ran peacefully.)

Why so?

Well, fuse is a synthetic filesystem, where files themselves are subject
to on demand creation / garbage collection (ie., not on the vnode
level, but on the "backing storage" level, which role is played by the
userspace filesystem daemon).

As the ENOENT complaints came when file gc hit in, I conjectured that
find somehow caches name-inode mappings (which becomes invalid if a file
gets gc'd: after that, if it's asked for, it will reappear with a new
inode number). I didn't look into find or libc source code, but that's
what I think.

Now with my CURRENT system (of 13th Nov) I don't see this happening
anymore, BSD find also runs fine. I wonder what has changed... find
itself doesn't seem to have any essential commits recently.

Does anyone has an idea?

Regards,
Csaba



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051124113840.GK2911>