Bug 1078991

Summary: rsync should be a dependency of glusterfs-geo-replication
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: Cedric Buissart <cbuissar>
Component: geo-replicationAssignee: Venky Shankar <vshankar>
Status: CLOSED DUPLICATE QA Contact: storage-qa-internal <storage-qa-internal>
Severity: medium Docs Contact:
Priority: low    
Version: 2.1CC: aavati, avishwan, csaba, nlevinki, nsathyan
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-06-12 11:41:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Cedric Buissart 2014-03-20 17:29:25 UTC
Description of problem:

It is currently possible to install glusterfs-geo-replication without rsync. 
My understanding is that geo-replication runs rsync over SSH to sync data. It ends with the following error on the server :

[2014-03-20 16:21:37.855513] I [master(/mnt/bricks/brick1/gluster):335:crawlwrap] _GMaster: primary master with volume id c04c8291-f516-45f9-a56b-0ec84bfb89b9 ...
[2014-03-20 16:21:37.902266] I [master(/mnt/bricks/brick1/gluster):345:crawlwrap] _GMaster: crawl interval: 60 seconds
[2014-03-20 16:21:37.920715] I [master(/mnt/bricks/brick1/gluster):900:crawl] _GMaster: processing xsync changelog /var/run/gluster/firstvol/ssh%3A%2F%2Froot%4010.34.27.141%3Agluster%3A%2F%2F127.0.0.1%3Ageogio/1ea0e4824477e3b48e7df3cfd81e98fe/xsync/XSYNC-CHANGELOG.1395328897
[2014-03-20 16:21:38.411324] E [resource(/mnt/bricks/brick1/gluster):204:errlog] Popen: command "rsync -avR0 --inplace --files-from=- --super --stats --numeric-ids --no-implied-dirs . -e ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i /var/lib/glusterd/geo-replication/secret.pem -oControlMaster=auto -S /tmp/gsyncd-aux-ssh-mHmkPt/gsycnd-ssh-%r@%h:%p --compress root@cbuissar-rhs3:/proc/14837/cwd" returned with 12, saying:
[2014-03-20 16:21:38.411561] E [resource(/mnt/bricks/brick1/gluster):207:logerr] Popen: rsync> exec of rsync failed
[2014-03-20 16:21:38.411735] E [resource(/mnt/bricks/brick1/gluster):207:logerr] Popen: rsync> rsync: connection unexpectedly closed (0 bytes received so far) [sender]
[2014-03-20 16:21:38.411890] E [resource(/mnt/bricks/brick1/gluster):207:logerr] Popen: rsync> rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]



As such, glusterfs-geo-replication should have rsync as dependency, to avoid such issue.

Version-Release number of selected component (if applicable): 3.4.0.59rhs-1.el6rhs.x86_64


How reproducible:
100%

Steps to Reproduce:
1. on slave : `rpm -e rsync`
2. start geo-replication
3.

Actual results:
Fails with the error above.

Expected results:
It should not be possible to remove rsync RPM without removing glusterfs-geo-replication

Comment 2 Cedric Buissart 2014-03-20 19:04:52 UTC
suggested patch :

--- SPECS/glusterfs.spec.ori    2014-02-04 14:40:02.000000000 +0100
+++ SPECS/glusterfs.spec        2014-03-20 20:05:36.549001362 +0100
@@ -252,6 +252,7 @@ Requires:         %{name} = %{version}-%
 # Strict dependency for `ls extras/geo-rep/*` scripts
 Requires:         attr
 Requires:         openssh-clients
+Requires:         rsync
 
 %description geo-replication
 GlusterFS is a clustered file-system capable of scaling to several



Result :
# rpm -qp --requires glusterfs-geo-replication-3.4.0.59rhs-1.el6rhs.x86_64.rpm  | grep rsync
rsync