From a1ec459b30c0101c331d00e552275f8c5a4035ae Mon Sep 17 00:00:00 2001 From: Wyatt Date: Sat, 7 Oct 2017 20:27:36 +0300 Subject: [PATCH 1/5] Peers saved in bootstrapper upon peer rm --- cluster.go | 3 +++ peer_manager.go | 2 ++ 2 files changed, 5 insertions(+) diff --git a/cluster.go b/cluster.go index 9c50c980..16978fd4 100644 --- a/cluster.go +++ b/cluster.go @@ -423,6 +423,9 @@ func (c *Cluster) Shutdown() error { } else { time.Sleep(2 * time.Second) } + /* set c.Config.Bootstrap to current peers */ + c.config.Bootstrap = c.peerManager.peersAddrs() + c.config.Save("") c.peerManager.resetPeers() } diff --git a/peer_manager.go b/peer_manager.go index e7db6895..862a7fa1 100644 --- a/peer_manager.go +++ b/peer_manager.go @@ -66,6 +66,8 @@ func (pm *peerManager) rmPeer(pid peer.ID, selfShutdown bool) error { go func() { time.Sleep(1 * time.Second) pm.cluster.consensus.Shutdown() + pm.cluster.config.Bootstrap = pm.peersAddrs() + pm.cluster.config.Save("") pm.resetPeers() time.Sleep(4 * time.Second) pm.cluster.Shutdown() From d6e1c39e86338b7d8d656262b208a11c0b124067 Mon Sep 17 00:00:00 2001 From: Wyatt Date: Mon, 9 Oct 2017 11:43:34 -0400 Subject: [PATCH 2/5] Include cluster-restart script for test image --- docker/cluster-restart.sh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100755 docker/cluster-restart.sh diff --git a/docker/cluster-restart.sh b/docker/cluster-restart.sh new file mode 100755 index 00000000..55a82286 --- /dev/null +++ b/docker/cluster-restart.sh @@ -0,0 +1,8 @@ +#! /bin/bash + +# Restart the cluster process +sleep 2 +while true; do + pgrep ipfs-cluster-service || ipfs-cluster-service -f init; echo "CLUSTER RESTARTED"; ipfs-cluster-service --debug & + sleep 10 +done From 67d38a06c4f2876a825ce1bca485832f9c92a52c Mon Sep 17 00:00:00 2001 From: Wyatt Date: Wed, 11 Oct 2017 11:09:39 -0400 Subject: [PATCH 3/5] Using shadow to actually save bootstrapper, updating cluster restart to respect saved config for tests --- cluster.go | 1 + docker/cluster-restart.sh | 2 +- peer_manager.go | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cluster.go b/cluster.go index 16978fd4..83e50a7c 100644 --- a/cluster.go +++ b/cluster.go @@ -425,6 +425,7 @@ func (c *Cluster) Shutdown() error { } /* set c.Config.Bootstrap to current peers */ c.config.Bootstrap = c.peerManager.peersAddrs() + c.config.Shadow() c.config.Save("") c.peerManager.resetPeers() } diff --git a/docker/cluster-restart.sh b/docker/cluster-restart.sh index e020c308..ff646e6c 100755 --- a/docker/cluster-restart.sh +++ b/docker/cluster-restart.sh @@ -4,6 +4,6 @@ sleep 2 while true; do export CLUSTER_SECRET="" - pgrep ipfs-cluster-service || ipfs-cluster-service -f init; echo "CLUSTER RESTARTED"; ipfs-cluster-service --debug & + pgrep ipfs-cluster-service || echo "CLUSTER RESTARTED"; ipfs-cluster-service --debug & sleep 10 done diff --git a/peer_manager.go b/peer_manager.go index 862a7fa1..f506837c 100644 --- a/peer_manager.go +++ b/peer_manager.go @@ -67,6 +67,7 @@ func (pm *peerManager) rmPeer(pid peer.ID, selfShutdown bool) error { time.Sleep(1 * time.Second) pm.cluster.consensus.Shutdown() pm.cluster.config.Bootstrap = pm.peersAddrs() + pm.cluster.config.Shadow() pm.cluster.config.Save("") pm.resetPeers() time.Sleep(4 * time.Second) From 0cd8e447c4e36dba9d97ac1fb3aefb52a8408b13 Mon Sep 17 00:00:00 2001 From: Wyatt Date: Wed, 11 Oct 2017 13:18:46 -0400 Subject: [PATCH 4/5] Touching up cluster restart to wait for listener clean up more effectively --- docker/cluster-restart.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/cluster-restart.sh b/docker/cluster-restart.sh index ff646e6c..160a19ee 100755 --- a/docker/cluster-restart.sh +++ b/docker/cluster-restart.sh @@ -1,9 +1,9 @@ #! /bin/bash # Restart the cluster process -sleep 2 +sleep 4 while true; do export CLUSTER_SECRET="" - pgrep ipfs-cluster-service || echo "CLUSTER RESTARTED"; ipfs-cluster-service --debug & + pgrep ipfs-cluster-service || echo "CLUSTER RESTARTING"; ipfs-cluster-service --debug & sleep 10 done From e3ccc1b8f4e5735a4c8249863e84c5e6005987f4 Mon Sep 17 00:00:00 2001 From: Wyatt Date: Wed, 11 Oct 2017 16:12:21 -0400 Subject: [PATCH 5/5] Using unshadow to save bootstrappers without changing other functionality --- cluster.go | 3 +-- peer_manager.go | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cluster.go b/cluster.go index 83e50a7c..c2884b13 100644 --- a/cluster.go +++ b/cluster.go @@ -423,9 +423,8 @@ func (c *Cluster) Shutdown() error { } else { time.Sleep(2 * time.Second) } - /* set c.Config.Bootstrap to current peers */ + c.config.unshadow() c.config.Bootstrap = c.peerManager.peersAddrs() - c.config.Shadow() c.config.Save("") c.peerManager.resetPeers() } diff --git a/peer_manager.go b/peer_manager.go index f506837c..369713e6 100644 --- a/peer_manager.go +++ b/peer_manager.go @@ -66,8 +66,8 @@ func (pm *peerManager) rmPeer(pid peer.ID, selfShutdown bool) error { go func() { time.Sleep(1 * time.Second) pm.cluster.consensus.Shutdown() + pm.cluster.config.unshadow() pm.cluster.config.Bootstrap = pm.peersAddrs() - pm.cluster.config.Shadow() pm.cluster.config.Save("") pm.resetPeers() time.Sleep(4 * time.Second)