diff options
author | Harshavardhana <harsha@harshavardhana.net> | 2013-08-21 16:28:41 -0700 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2013-09-04 12:29:04 -0700 |
commit | fa095c24979db2d0a3a6413aa431fe7256be5206 (patch) | |
tree | 2c81eb1986ee3358b8b7e750fbc91928529fa659 /geo-replication/syncdaemon/gconf.py | |
parent | 3b23f9acae02e6be192c00fc410a4d15974f5343 (diff) |
geo-replication: Use a md5 based unique control path
A hostname fqdn can be of length 255 according to RFC1123
------------------------->
/usr/include/bits/posix1_lim.h:#define _POSIX_HOST_NAME_MAX 255
<-------------------------
On linux this length is 64
------------------------->
/usr/include/bits/local_lim.h:#define HOST_NAME_MAX 64
<-------------------------
When a given hostname is > 45 (characters) - SSH fails with
-------------------------->
"ControlPath too long for Unix domain socket".
<--------------------------
Indicating that the total length of ControlPath which is
on linux should be 108
------------------------->
/usr/include/linux/un.h:#define UNIX_PATH_MAX 108
<-------------------------
This leads to "faulty" geo-replication status.
This patch brings in a new file called manifest which carries
given a geo-rep session some unique information - with which
a unique `md5` is generated in a 32length digest, this ensures
that we don't exceed UNIX_PATH_MAX limitations instead we use
a conservative approach and still be able to provide a unique
socket path.
Change-Id: I3a6a27d605d751a86e7c82eace4561d9b0134fe1
BUG: 990330
Signed-off-by: Harshavardhana <harsha@harshavardhana.net>
Reviewed-on: http://review.gluster.org/5681
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Csaba Henk <csaba@redhat.com>
Diffstat (limited to 'geo-replication/syncdaemon/gconf.py')
-rw-r--r-- | geo-replication/syncdaemon/gconf.py | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/geo-replication/syncdaemon/gconf.py b/geo-replication/syncdaemon/gconf.py index 146c72a1825..fe5795f16e2 100644 --- a/geo-replication/syncdaemon/gconf.py +++ b/geo-replication/syncdaemon/gconf.py @@ -12,9 +12,4 @@ class GConf(object): permanent_handles = [] log_metadata = {} - @classmethod - def setup_ssh_ctl(cls, ctld): - cls.ssh_ctl_dir = ctld - cls.ssh_ctl_args = ["-oControlMaster=auto", "-S", os.path.join(ctld, "gsycnd-ssh-%r@%h:%p")] - gconf = GConf() |