[Bugs] [Bug 1529842] New: Read-only listxattr syscalls seem to translate to non-read-only FOPs

bugzilla at redhat.com bugzilla at redhat.com
Sat Dec 30 04:01:22 UTC 2017


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

            Bug ID: 1529842
           Summary: Read-only listxattr syscalls seem to translate to
                    non-read-only FOPs
           Product: GlusterFS
           Version: mainline
         Component: changelog
          Assignee: bugs at gluster.org
          Reporter: nh2-redhatbugzilla at deditus.de
                CC: bugs at gluster.org



Description of problem:

I'm running Gluster 3.12.3 on Linux (NixOS).

When I use

  getfattr /my/glustermount/myfile

which does a `listxattr()` syscall, then glusterfs translates this to a pair of
SETATTR/REMOVEXATTR FOPs that appear in CHANGELOG.* files, for example

    # cat
/var/var/lib/misc/glusterfsd/glusterfind/myvol/myvolume/20171229-213130-082373-0RsA37/eef7fa430d9ab60e74ec72b66629f783f9fb37fa/.history/.current/CHANGELOG.1512988094
    M 588ddd06-ca1f-48bc-b5ea-eece0e407b3d SETATTR
    M 588ddd06-ca1f-48bc-b5ea-eece0e407b3d REMOVEXATTR

Should really any SETATTR FOP be issued on the gluster side given that
`listxattr()` is a read-only operation?

This makes performance problems:

My backup tool (bup) that I use for backing up my volume issues a
`llistxattr()` for each file it encounters, thus creating millions of
SETATTR/REMOVEXATTR pairs in CHANGELOG.* files and blowing up the work that
`glusterfind` has to do to process them a lot.

How reproducible: Always

Steps to Reproduce:
1. Make sure changelog xlator is enabled (e.g. run glusterfind)
2. Monitor CHANGELOG entries, e.g. using: while true; do cat
/data/glusterfs/myvol/brick1/brick/.glusterfs/changelogs/CHANGELOG.$(date '+%s'
&& sleep 1); sleep 0.1; done
3. Run `getfattr` on a file in the mount

Actual results:

SETATTR/REMOVEXATTR appears in the changelog.

Expected results:

SETATTR/REMOVEXATTR does not appear in the changelog.

-- 
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