aboutsummaryrefslogtreecommitdiff
path: root/rumba
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@ugent.be>2018-06-06 16:13:35 +0200
committerSander Vrijders <sander.vrijders@ugent.be>2018-06-06 16:13:35 +0200
commitffb6be1dae7bebf4596336acdefccbfe885bc8a9 (patch)
treebe46105057e1fee9107db117766c98a540971070 /rumba
parent28d34549ecf3a6fe5dde672569b7e8f5e05f1a5e (diff)
downloadrumba-ffb6be1dae7bebf4596336acdefccbfe885bc8a9.tar.gz
rumba-ffb6be1dae7bebf4596336acdefccbfe885bc8a9.zip
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.
Diffstat (limited to 'rumba')
-rw-r--r--rumba/prototypes/ouroboros.py10
1 files changed, 6 insertions, 4 deletions
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):