From 3eaf21e3cc8cf481226d1ed495d7261b1acbb594 Mon Sep 17 00:00:00 2001 From: Kotresh HR Date: Thu, 21 May 2015 11:55:03 +0530 Subject: geo-rep: Disable xattrs and acls support with tar_ssh Geo-rep can't sync xattrs and acls with tar over ssh for following reasons. Issue 1: xattrs doesn't sync with tar over ssh. Reason: untar doesn't respect '--overwrite' option when used along with '--xattrs'. So it sends unlink if the file exists on destination and re-creates afresh. But all entry operations are banned in aux-gfid-mount as it may lead to gfid-mismatch. Hence fails with EPERM. This happens only when some xattr is set on a file in master volume. Issue2: acls on directories does not sync with tar over ssh. Reason: tar tries to opendir ".gfid/" and is not supported by gfid-access-translator as readirp can't be handled on virtual inodes and hence fails with ENOTSUP where as it syncs for files. Since the issue is with tar commmand it self and nothing could be done from gluster side, disabling xattr and acls support with tar over ssh option. Geo-rep can sync xattrs and acls with 'rsync' as the sync engine. Change-Id: I6821d327e7fe15545adef644869aa2389f79c701 BUG: 1223642 Signed-off-by: Kotresh HR Reviewed-on: http://review.gluster.org/10873 Tested-by: NetBSD Build System Reviewed-by: Venky Shankar --- geo-replication/syncdaemon/resource.py | 4 ---- 1 file changed, 4 deletions(-) (limited to 'geo-replication/syncdaemon/resource.py') diff --git a/geo-replication/syncdaemon/resource.py b/geo-replication/syncdaemon/resource.py index 71fcc8c798f..d5d8d02e05e 100644 --- a/geo-replication/syncdaemon/resource.py +++ b/geo-replication/syncdaemon/resource.py @@ -956,13 +956,9 @@ class SlaveRemote(object): logging.debug("files: " + ", ".join(files)) (host, rdir) = slaveurl.split(':') tar_cmd = ["tar"] + \ - (boolify(gconf.sync_xattrs) and ['--xattrs'] or []) + \ - (boolify(gconf.sync_acls) and ['--acls'] or []) + \ ["-cf", "-", "--files-from", "-"] ssh_cmd = gconf.ssh_command_tar.split() + \ [host, "tar"] + \ - (boolify(gconf.sync_xattrs) and ['--xattrs'] or []) + \ - (boolify(gconf.sync_acls) and ['--acls'] or []) + \ ["--overwrite", "-xf", "-", "-C", rdir] p0 = Popen(tar_cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) -- cgit