[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