misteries of find(1)

From: Csaba Henk (csaba-ml_at_creo.hu)
Date: 11/24/05

  • Next message: Cristiano Deana: "ZyXEL usb wifi"
    Date: Thu, 24 Nov 2005 12:38:40 +0100
    To: freebsd-hackers@freebsd.org
    
    

    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
    _______________________________________________
    freebsd-hackers@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
    To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"


  • Next message: Cristiano Deana: "ZyXEL usb wifi"

    Relevant Pages