Prechádzať zdrojové kódy

Have a 2 min timeout for connecting to the nodes

Signed-off-by: mudler <[email protected]>
mudler 1 rok pred
rodič
commit
556ff981bb
2 zmenil súbory, kde vykonal 15 pridanie a 2 odobranie
  1. 3 1
      pkg/discovery/dht.go
  2. 12 1
      pkg/discovery/ring_test.go

+ 3 - 1
pkg/discovery/dht.go

@@ -241,7 +241,9 @@ func (d *DHT) announceAndConnect(l log.StandardLogger, ctx context.Context, kade
 
 		if host.Network().Connectedness(p.ID) != network.Connected {
 			l.Debug("Found peer:", p)
-			if err := host.Connect(ctx, p); err != nil {
+			timeoutCtx, cancel := context.WithTimeout(ctx, time.Second*120)
+			defer cancel()
+			if err := host.Connect(timeoutCtx, p); err != nil {
 				l.Debug("Failed connecting to", p)
 			} else {
 				l.Debug("Connected to:", p)

+ 12 - 1
pkg/discovery/ring_test.go

@@ -22,7 +22,7 @@ import (
 
 var _ = Describe("String utilities", func() {
 	Context("Ring", func() {
-		It("adds elements to the ring", func() {
+		It("adds elements to the ring (3)", func() {
 			R := Ring{Length: 3}
 			R.Add("a")
 			R.Add("b")
@@ -33,5 +33,16 @@ var _ = Describe("String utilities", func() {
 			R.Add("d")
 			Expect(R.Data).To(Equal([]string{"b", "c", "d"}))
 		})
+		It("adds elements to the ring (2)", func() {
+			R := Ring{Length: 2}
+			R.Add("a")
+			R.Add("b")
+			R.Add("c")
+			Expect(R.Data).To(Equal([]string{"b", "c"}))
+			R.Add("d")
+			Expect(R.Data).To(Equal([]string{"c", "d"}))
+			R.Add("d")
+			Expect(R.Data).To(Equal([]string{"c", "d"}))
+		})
 	})
 })