From 74c0dd6b7b3f4caaf36a18b37e62cf3338f99cab Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Wed, 23 May 2012 14:54:02 +0530 Subject: geo-rep / gsyncd: add "--super" to rsync invocation This forces rsync to perform supposedly privileged operations on unprivileged slaves (like chown(2)). For consistent behavior (with gsyncd's "chown" RPC call that's being used for symlinks and directories), we also pass "--numeric-ids" to rsync. Also took the chance to retire gsyncd's "--rsync-extra" option which was there for debugging purposes (related to a resolved issue). Change-Id: I4ee4d0d3a8c4e0f6746d34d7722c8a567a67491c BUG: 822121 Signed-off-by: Csaba Henk Reviewed-on: http://review.gluster.com/3426 Tested-by: Gluster Build System Reviewed-by: Anand Avati Reviewed-on: http://review.gluster.com/3453 Reviewed-by: Vijay Bellur --- xlators/features/marker/utils/syncdaemon/gsyncd.py | 1 - xlators/features/marker/utils/syncdaemon/resource.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/xlators/features/marker/utils/syncdaemon/gsyncd.py b/xlators/features/marker/utils/syncdaemon/gsyncd.py index 343bb8cb06a..196ed7ab6d4 100644 --- a/xlators/features/marker/utils/syncdaemon/gsyncd.py +++ b/xlators/features/marker/utils/syncdaemon/gsyncd.py @@ -160,7 +160,6 @@ def main_i(): op.add_option('--session-owner', metavar='ID') op.add_option('-s', '--ssh-command', metavar='CMD', default='ssh') op.add_option('--rsync-command', metavar='CMD', default='rsync') - op.add_option('--rsync-extra', metavar='ARGS', default='-S', help=SUPPRESS_HELP) op.add_option('--timeout', metavar='SEC', type=int, default=120) op.add_option('--connection-timeout', metavar='SEC', type=int, default=60, help=SUPPRESS_HELP) op.add_option('--sync-jobs', metavar='N', type=int, default=3) diff --git a/xlators/features/marker/utils/syncdaemon/resource.py b/xlators/features/marker/utils/syncdaemon/resource.py index 923cf78d4cd..db6d5ce121c 100644 --- a/xlators/features/marker/utils/syncdaemon/resource.py +++ b/xlators/features/marker/utils/syncdaemon/resource.py @@ -480,7 +480,7 @@ class SlaveRemote(object): if not files: raise GsyncdError("no files to sync") logging.debug("files: " + ", ".join(files)) - argv = gconf.rsync_command.split() + gconf.rsync_extra.split() + ['-aR'] + files + list(args) + argv = gconf.rsync_command.split() + ['-aRS', '--super', '--numeric-ids'] + files + list(args) po = Popen(argv, stderr=subprocess.PIPE) po.wait() po.terminate_geterr(fail_on_err = False) -- cgit