From ffb6be1dae7bebf4596336acdefccbfe885bc8a9 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Wed, 6 Jun 2018 16:13:35 +0200 Subject: prototypes: Switch register and bind operation This switches the register and bind operations in the ouroboros prototype, to avoid a race condition when starting a server very fast. --- rumba/prototypes/ouroboros.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'rumba') diff --git a/rumba/prototypes/ouroboros.py b/rumba/prototypes/ouroboros.py index 0c16482..1c24a0c 100644 --- a/rumba/prototypes/ouroboros.py +++ b/rumba/prototypes/ouroboros.py @@ -62,9 +62,6 @@ class OurServer(sb.Server): # Run and store PID n_cmd = 'pid=$(%s); ' % (o_cmd,) - # Add bind command - n_cmd += 'irm b process $pid name %s > /dev/null 2>&1; ' % (self.id,) - # Build register command r_cmd = 'irm r n %s ' % (self.id,) if len(self.difs) == 0: @@ -75,6 +72,10 @@ class OurServer(sb.Server): # Add register command n_cmd += r_cmd + + # Add bind command + n_cmd += 'irm b process $pid name %s > /dev/null 2>&1; ' % (self.id,) + n_cmd += 'echo $pid' # We need to return the pid for the sb return n_cmd @@ -148,7 +149,8 @@ class Experiment(mod.Experiment): time.sleep(2) else: for node in self.nodes: - node.execute_command("sudo nohup irmd > /dev/null &", time_out=None) + node.execute_command("sudo nohup irmd > /dev/null &", + time_out=None) def install_ouroboros(self): if isinstance(self.testbed, local.Testbed): -- cgit v1.2.3