From 6af14c76f45754b190e74c824f73227190382ed3 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 --- xlators/features/marker/utils/syncdaemon/gsyncd.py | 1 - xlators/features/marker/utils/syncdaemon/resource.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'xlators/features/marker') 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 bb7dca61d47..de271bd3939 100644 --- a/xlators/features/marker/utils/syncdaemon/resource.py +++ b/xlators/features/marker/utils/syncdaemon/resource.py @@ -493,7 +493,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