diff options
-rw-r--r-- | geo-replication/syncdaemon/gsyncd.py | 1 | ||||
-rw-r--r-- | geo-replication/syncdaemon/monitor.py | 9 | ||||
-rw-r--r-- | geo-replication/syncdaemon/resource.py | 8 |
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 |