[Gluster-devel] no dentry for non-root inode
amarts at redhat.com
Tue Nov 8 05:28:54 UTC 2011
On 11/08/2011 10:56 AM, Amar Tumballi wrote:
> Hello Emmanuel,
>>>> [2011-11-05 03:12:47.856612] W [inode.c:1044:inode_path]
>>>> 0-/export/wd3e/inode: no dentry for non-root inode
>>>> -9091625530591748852: d968c71c-9c3f-471e-81d4-0ebfda34dd0c
> This log is not a 'error', but warning. What that means is, this
> condition need not be causing the error seen by the user.
> One of the case why this warning would come up is from below set of
> machine 1 --> user creates a file (inode created, fd on inode is
> created, dentry with filename is linked to parent inode).
> machine 2 --> just do a 'cat' on file (inode is looked up, updated in
> machine 3 --> delete the file (dentry is unlinked from inode, inode
> still valid as there is fd open on it)
> machine 2 --> try to perform some operation on the file (inode is
> tried to looked up, inode is valid on server as there is a 'fd' open
> on it, but there is no 'PATH' for it, as dentry is unlinked), user
> gets error ENOENT. (this is when you can see such logs in server).
> machine 1 --> perform operations on 'fd' --> succeeds as fd is still
> machine 1 --> close the fd.. (inode gets destroyed on server, no more
> valid inode for that gfid).
> Hope you can now relate this type of pattern in your testing.
In the above case, one need not have 3 machines to reproduce this, but 3
processes are enough on same client (but in this case, he normally sees
the log in fuse_resolve.c itself).
More information about the Gluster-devel