summaryrefslogtreecommitdiffstats
path: root/geo-replication
diff options
context:
space:
mode:
Diffstat (limited to 'geo-replication')
-rw-r--r--geo-replication/syncdaemon/gsyncd.py1
-rw-r--r--geo-replication/syncdaemon/monitor.py9
-rw-r--r--geo-replication/syncdaemon/resource.py8
3 files changed, 16 insertions, 2 deletions
diff --git a/geo-replication/syncdaemon/gsyncd.py b/geo-replication/syncdaemon/gsyncd.py
index adc48f146a6..ac39a79128b 100644
--- a/geo-replication/syncdaemon/gsyncd.py
+++ b/geo-replication/syncdaemon/gsyncd.py
@@ -777,6 +777,7 @@ def main_i():
remote.connect_remote(go_daemon='done')
local.connect()
if ffd:
+ logging.info ("Closing feedback fd, waking up the monitor")
os.close(ffd)
local.service_loop(*[r for r in [remote] if r])
diff --git a/geo-replication/syncdaemon/monitor.py b/geo-replication/syncdaemon/monitor.py
index d23d4542fd6..c54c07d600c 100644
--- a/geo-replication/syncdaemon/monitor.py
+++ b/geo-replication/syncdaemon/monitor.py
@@ -369,8 +369,13 @@ class Monitor(object):
time.sleep(1)
else:
- logging.info("worker(%s) not confirmed in %d sec, "
- "aborting it" % (w[0]['dir'], conn_timeout))
+ logging.info("worker(%s) not confirmed in %d sec, aborting it. "
+ "Gsyncd invocation on remote slave via SSH or "
+ "gluster master mount might have hung. Please "
+ "check the above logs for exact issue and check "
+ "master or slave volume for errors. Restarting "
+ "master/slave volume accordingly might help."
+ % (w[0]['dir'], conn_timeout))
errno_wrap(os.kill, [cpid, signal.SIGKILL], [ESRCH])
nwait(apid) # wait for agent
ret = nwait(cpid)
diff --git a/geo-replication/syncdaemon/resource.py b/geo-replication/syncdaemon/resource.py
index 0e718b28344..eb295ad8601 100644
--- a/geo-replication/syncdaemon/resource.py
+++ b/geo-replication/syncdaemon/resource.py
@@ -1452,6 +1452,8 @@ class GLUSTER(AbstractUrl, SlaveLocal, SlaveRemote):
with given backend
"""
+ logging.info ("Mounting gluster volume locally...")
+ t0 = time.time()
label = getattr(gconf, 'mountbroker', None)
if not label and not privileged():
label = syncdutils.getusername()
@@ -1462,6 +1464,8 @@ class GLUSTER(AbstractUrl, SlaveLocal, SlaveRemote):
['log-file=' + gconf.gluster_log_file, 'volfile-server=' +
self.host, 'volfile-id=' + self.volume, 'client-pid=-1']
mounter(params).inhibit(*[l for l in [label] if l])
+ logging.info ("Mounted gluster volume. Time taken: {0:.4f} "
+ "secs".format((time.time() - t0)))
def connect_remote(self, *a, **kw):
sup(self, *a, **kw)
@@ -1723,10 +1727,14 @@ class SSH(AbstractUrl, SlaveRemote):
self.inner_rsc.url)
deferred = go_daemon == 'postconn'
+ logging.info ("Initializing SSH connection between master and slave...")
+ t0 = time.time()
ret = sup(self, gconf.ssh_command.split() +
["-p", str(gconf.ssh_port)] +
gconf.ssh_ctl_args + [self.remote_addr],
slave=self.inner_rsc.url, deferred=deferred)
+ logging.info ("SSH connection between master and slave established. "
+ "Time taken: {0:.4f} secs".format((time.time() - t0)))
if deferred:
# send a message to peer so that we can wait for