[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