[Bugs] [Bug 1463513] New: [geo-rep]: extended attributes are not synced if the entry and extended attributes are done within changelog roleover /or entry sync

bugzilla at redhat.com bugzilla at redhat.com
Wed Jun 21 07:36:13 UTC 2017


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

            Bug ID: 1463513
           Summary: [geo-rep]: extended attributes are not synced if the
                    entry and extended attributes are done within
                    changelog roleover/or entry sync
           Product: GlusterFS
           Version: 3.11
         Component: geo-replication
          Keywords: Triaged
          Severity: high
          Assignee: bugs at gluster.org
          Reporter: rkavunga at redhat.com
                CC: amukherj at redhat.com, asrivast at redhat.com,
                    bugs at gluster.org, csaba at redhat.com,
                    khiremat at redhat.com, rhinduja at redhat.com,
                    rhs-bugs at redhat.com, storage-qa-internal at redhat.com
        Depends On: 1426952, 1448914



+++ This bug was initially created as a clone of Bug #1448914 +++

+++ This bug was initially created as a clone of Bug #1426952 +++

Description of problem:
=======================

Have observed a scenario where extended attributes are not syncing to slave via
rsync/fuse if the entry and setxattr is done within 15 seconds. 

Master:
=======

[root at dj master]# touch r.1 ; setfattr  -n user.rtest1 -v 100112 r.1 
[root at dj master]# getfattr -d -e hex -m . r.1
# file: r.1
security.selinux=0x73797374656d5f753a6f626a6563745f723a6675736566735f743a733000
user.rtest1=0x313030313132

[root at dj master]# touch r.2 ; sleep 20 ; setfattr  -n user.rtest1 -v 100113 r.2
[root at dj master]# touch r.3 ; sleep 20 ; setfattr  -n user.rtest1 -v 100113 r.3
[root at dj master]# touch r.4 ; setfattr  -n user.rtest1 -v 100112 r.4
[root at dj master]# 


Slave:
======

[root at dj slave]# getfattr -d -e hex -m . r.1
# file: r.1
security.selinux=0x73797374656d5f753a6f626a6563745f723a6675736566735f743a733000

#root at dj slave]# 
[root at dj slave]# getfattr -d -e hex -m . r.2
# file: r.2
security.selinux=0x73797374656d5f753a6f626a6563745f723a6675736566735f743a733000

[root at dj slave]# 
[root at dj slave]# 
[root at dj slave]# getfattr -d -e hex -m . r.2
# file: r.2
security.selinux=0x73797374656d5f753a6f626a6563745f723a6675736566735f743a733000
user.rtest1=0x313030313133

[root at dj slave]# getfattr -d -e hex -m . r.1
# file: r.1
security.selinux=0x73797374656d5f753a6f626a6563745f723a6675736566735f743a733000

[root at dj slave]# getfattr -d -e hex -m . r.3
# file: r.3
security.selinux=0x73797374656d5f753a6f626a6563745f723a6675736566735f743a733000
user.rtest1=0x313030313133

[root at dj slave]# getfattr -d -e hex -m . r.4
# file: r.4
security.selinux=0x73797374656d5f753a6f626a6563745f723a6675736566735f743a733000

[root at dj slave]# 
[root at dj slave]# getfattr -d -e hex -m . r.4
# file: r.4
security.selinux=0x73797374656d5f753a6f626a6563745f723a6675736566735f743a733000

[root at dj slave]# 

Looked into the .processed directory, it doesn't contain any information yet.
Looked into the changelogs and .processing directory. When extended attribute
are applied after 15 sec, it is rightly logged into the new changelog which is
in processing directory with (SETXATTR). If it is set with 15 secs, it is not
recorded in the changelog but only Entry and SETATTR is only recorded and no
record for SETXATTR.

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

glusterfs-geo-replication-3.8.4-15.el7rhgs.x86_64


How reproducible:
=================

Always

Steps to Reproduce:
===================
1. Create geo-rep session between master and slave volume
2. Mount the volumes 
3. Create a file and wait for 20 secs
4. Set the extended attribute on the file. It will properly sync to slave.
5. Create another file and immediately set the extended attribute on the file

Actual results:
===============

extended attributes are not synced to the slave


Expected results:
=================

extended attributes should be synced to the slave



--- Additional comment from Rahul Hinduja on 2017-02-26 13:38:35 EST ---



I dont have data to prove if this is a regression. But looking at the design
this doesn't seem to be a regression, would definitely need Arvinda/kotresh
comments on this. 



--- Additional comment from Rahul Hinduja on 2017-02-26 13:40:10 EST ---

> I dont have data to prove if this is a regression. But looking at the design
> this doesn't seem to be a regression, would definitely need Arvinda/kotresh
> comments on this. 
+ Also, the testing of extended attributes were done in earlier releases but
not within 15 sec. So do not have testing data.

--- Additional comment from Kotresh HR on 2017-02-27 04:01:08 EST ---

Analysis:

This is not a regression. This is a day one bug. There is an optimization in
changelog to not record multiple METADATA ops on single gfid with in a
changelog.
I think this was because there was no extended attribute support during that
time and only supported SETATTR. Now since we also support SETXATTR, if SETATTR
is already recorded for gfid1, we would miss recording SETXATTR on gfid1. Hence
setxattr would not get synced. This bug will affect the user set extended
attributes if any.

The solution would be to remove the optimization for METADATA fops and keep it
only for DATA fops.

--- Additional comment from Worker Ant on 2017-05-08 11:59:18 EDT ---

REVIEW: https://review.gluster.org/17205 (geo-replication: Add xattr as special
type in changelog entry) posted (#1) for review on master by mohammed rafi  kc
(rkavunga at redhat.com)

--- Additional comment from Worker Ant on 2017-05-10 02:29:03 EDT ---

REVIEW: https://review.gluster.org/17205 (features/changelog: Add xattr as
special type in changelog entry) posted (#2) for review on master by mohammed
rafi  kc (rkavunga at redhat.com)

--- Additional comment from Worker Ant on 2017-05-10 08:55:49 EDT ---

COMMIT: https://review.gluster.org/17205 committed in master by Jeff Darcy
(jeff at pl.atyp.us) 
------
commit ed27add635263eafb581e5dd1599478d82f0f28a
Author: Mohammed Rafi KC <rkavunga at redhat.com>
Date:   Mon May 8 21:10:50 2017 +0530

    features/changelog: Add xattr as special type in changelog entry

    When both SETATTR and SETXATTR fops are happening on gfid within the
    rollover time then, SETXATTR were not logged.
    In Which case we will miss the xattr fop in slave.

    This patch will be fix the same

    Change-Id: Ia75538ad1fd2797dbcf90d20dfa89f756009243d
    BUG: 1448914
    Signed-off-by: Mohammed Rafi KC <rkavunga at redhat.com>
    Reviewed-on: https://review.gluster.org/17205
    NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
    CentOS-regression: Gluster Build System <jenkins at build.gluster.org>
    Reviewed-by: Kotresh HR <khiremat at redhat.com>
    Smoke: Gluster Build System <jenkins at build.gluster.org>


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1426952
[Bug 1426952] [geo-rep]: extended attributes are not synced if the entry
and extended attributes are done within changelog roleover/or entry sync
https://bugzilla.redhat.com/show_bug.cgi?id=1448914
[Bug 1448914] [geo-rep]: extended attributes are not synced if the entry
and extended attributes are done within changelog roleover/or entry sync
-- 
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