[Bugs] [Bug 1335373] New: cyclic dentry loop in inode table

bugzilla at redhat.com bugzilla at redhat.com
Thu May 12 06:31:09 UTC 2016


https://bugzilla.redhat.com/show_bug.cgi?id=1335373

            Bug ID: 1335373
           Summary: cyclic dentry loop in inode table
           Product: GlusterFS
           Version: mainline
         Component: fuse
          Assignee: bugs at gluster.org
          Reporter: rgowdapp at redhat.com
                CC: bugs at gluster.org



Description of problem:

Assume the following directory structure:

               1
              / \
             2   3
             |
             a
            / \
           b   c

Now, Consider following sequence of operations:
1. lookup <2,a> at storage/posix.
2. rename <2,a> to <3,a> at storage/posix
3. rename completes at protocol/server and it modifies dentries appropriately.
4. lookup completes at protocol/server and it creates a dentry <2,a> in inode
table.


After the above sequence of operations, the dentry structure in inode table
looks like:

               1
              / \
             2   3
             |   |   
             a   a
                / \
               b   c


Now, if we mv 2 into either of b or c, we'll have a loop at a.

               1
                \
                 3
                 |   
                 a
                / \
               b   c
               |
               2
               |
               a

The loop here being (a, b, 2, a).

Note that, though I've given example of protocol/server here, in theory this
loop can be formed in any access-layer (like fuse-bridge, api, nfsv3 etc) doing
inode management.

Version-Release number of selected component (if applicable):
Day 1 bug, present in all releases

How reproducible:
race condition

Steps to Reproduce:
1. There is no specific test case, though we've seen this scenario in many
other tests.
2.
3.

Actual results:


Expected results:


Additional info:

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list