From f1c3fa8240e99f04834067e042f369dc417f4ef8 Mon Sep 17 00:00:00 2001 From: matst80 Date: Sat, 9 Nov 2024 20:17:19 +0100 Subject: [PATCH] remove dead nodes --- synced-pool.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/synced-pool.go b/synced-pool.go index d839343..bf65877 100644 --- a/synced-pool.go +++ b/synced-pool.go @@ -127,11 +127,19 @@ func NewSyncedPool(local *GrainLocalPool, hostname string, d Discovery) (*Synced log.Printf("Error adding undiscovered remote %s: %v\n", h, err) } } - for _, r := range pool.remotes { + for i, r := range pool.remotes { err := DoPing(r.connection) if err != nil { r.MissedPings++ log.Printf("Error pinging remote %s: %v\n, missed pings: %d", r.Host, err, r.MissedPings) + if r.MissedPings > 3 { + log.Printf("Removing remote %s\n", r.Host) + + pool.remotes = append(pool.remotes[:i], pool.remotes[i+1:]...) + + } + } else { + r.MissedPings = 0 } } }()