[Bugs] [Bug 1654753] New: A distributed-disperse volume crashes when a symbolic link is renamed

bugzilla at redhat.com bugzilla at redhat.com
Thu Nov 29 15:28:00 UTC 2018


            Bug ID: 1654753
           Summary: A distributed-disperse volume crashes when a symbolic
                    link is renamed
           Product: GlusterFS
           Version: mainline
         Component: distribute
          Assignee: bugs at gluster.org
          Reporter: jahernan at redhat.com
                CC: bugs at gluster.org

Description of problem:

On a distributed-disperse volume, if you try to rename a symbolic link, the
fuse process dies.

Version-Release number of selected component (if applicable): mainline

How reproducible:

Often, depends on the names used as original and renamed names

Steps to Reproduce:
1. gluster volume create test disperse 6 redundancy 2 host:/bricks/test_{1..12}
2. gluster volume start test
3. mount -t glusterfs host:/test /mnt
4. ln -s /dummy /mnt/symlink
5. mv /mnt/symlink /mnt/symlink.2

Actual results:

Fuse mount crashes

Expected results:

The rename should not cause a crash

Additional info:

The problem appears at the creation of the linkto file when the new name
doesn't go to the same brick the symlink was residing before the rename. In
this case DHT creates the symlink and tries to set some attributes calling
setattr fop.

When setattr is called, the passed inode references the "real" file (i.e. a
symlink). However, when ec receives the answers from bricks, statpre and
statpost say that the inode is a regular file (because linkto files are regular
files on the bricks).

This makes ec assume that it's a file, so it must have a defined size, but
symlinks do not have size, which causes an assertion to fail.

We shouldn't use the same inode structure to represent two different things.

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