diff --git a/dht.go b/dht.go index da3e74d83..ac69db38f 100644 --- a/dht.go +++ b/dht.go @@ -616,7 +616,10 @@ func (dht *IpfsDHT) rtPeerLoop() { // peer not added. continue } - if !newlyAdded { + if newlyAdded { + // peer was added to the RT, it can now be fixed if needed. + dht.fixRTIfNeeded() + } else { // the peer is already in our RT, but we just successfully queried it and so let's give it a // bump on the query time so we don't ping it too soon for a liveliness check. dht.routingTable.UpdateLastSuccessfulOutboundQueryAt(p, time.Now()) diff --git a/dht_test.go b/dht_test.go index ab02b8869..b643adbdd 100644 --- a/dht_test.go +++ b/dht_test.go @@ -271,7 +271,6 @@ func TestValueGetSet(t *testing.T) { defer dhts[i].host.Close() } - t.Log("before connect") connect(t, ctx, dhts[0], dhts[1]) t.Log("adding value on: ", dhts[0].self) @@ -290,13 +289,11 @@ func TestValueGetSet(t *testing.T) { if err != nil { t.Fatal(err) } - t.Log("after get value") if string(val) != "world" { t.Fatalf("Expected 'world' got '%s'", string(val)) } - t.Log("late connect") connect(t, ctx, dhts[2], dhts[0]) connect(t, ctx, dhts[2], dhts[1]) @@ -319,7 +316,6 @@ func TestValueGetSet(t *testing.T) { t.Fatalf("Expected 'world' got '%s'", string(val)) } - t.Log("very late connect") for _, d := range dhts[:3] { connect(t, ctx, dhts[3], d) } @@ -632,7 +628,7 @@ func checkForWellFormedTablesOnce(t *testing.T, dhts []*IpfsDHT, minPeers, avgPe rtlen := dht.routingTable.Size() totalPeers += rtlen if minPeers > 0 && rtlen < minPeers { - t.Logf("routing table for %s only has %d peers (should have >%d)", dht.self, rtlen, minPeers) + //t.Logf("routing table for %s only has %d peers (should have >%d)", dht.self, rtlen, minPeers) return false } } diff --git a/go.mod b/go.mod index fa233ef4a..08e54b503 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/ipfs/go-detect-race v0.0.1 github.com/ipfs/go-log v1.0.5 github.com/libp2p/go-libp2p v0.27.6 - github.com/libp2p/go-libp2p-kbucket v0.6.3-0.20230615004129-e99cd472ed1e + github.com/libp2p/go-libp2p-kbucket v0.6.3 github.com/libp2p/go-libp2p-record v0.2.0 github.com/libp2p/go-libp2p-routing-helpers v0.7.0 github.com/libp2p/go-libp2p-testing v0.12.0 diff --git a/go.sum b/go.sum index a1b9ccc54..8ac139ffc 100644 --- a/go.sum +++ b/go.sum @@ -278,8 +278,8 @@ github.com/libp2p/go-libp2p-asn-util v0.3.0/go.mod h1:B1mcOrKUE35Xq/ASTmQ4tN3LNz github.com/libp2p/go-libp2p-core v0.2.4/go.mod h1:STh4fdfa5vDYr0/SzYYeqnt+E6KfEV5VxfIrm0bcI0g= github.com/libp2p/go-libp2p-core v0.3.0/go.mod h1:ACp3DmS3/N64c2jDzcV429ukDpicbL6+TrrxANBjPGw= github.com/libp2p/go-libp2p-kbucket v0.3.1/go.mod h1:oyjT5O7tS9CQurok++ERgc46YLwEpuGoFq9ubvoUOio= -github.com/libp2p/go-libp2p-kbucket v0.6.3-0.20230615004129-e99cd472ed1e h1:E5ZSk+DxxsXoszjKZYtZBJoQ6LnwGCjq4zVIINZaaT4= -github.com/libp2p/go-libp2p-kbucket v0.6.3-0.20230615004129-e99cd472ed1e/go.mod h1:RCseT7AH6eJWxxk2ol03xtP9pEHetYSPXOaJnOiD8i0= +github.com/libp2p/go-libp2p-kbucket v0.6.3 h1:p507271wWzpy2f1XxPzCQG9NiN6R6lHL9GiSErbQQo0= +github.com/libp2p/go-libp2p-kbucket v0.6.3/go.mod h1:RCseT7AH6eJWxxk2ol03xtP9pEHetYSPXOaJnOiD8i0= github.com/libp2p/go-libp2p-peerstore v0.1.4/go.mod h1:+4BDbDiiKf4PzpANZDAT+knVdLxvqh7hXOujessqdzs= github.com/libp2p/go-libp2p-record v0.2.0 h1:oiNUOCWno2BFuxt3my4i1frNrt7PerzB3queqa1NkQ0= github.com/libp2p/go-libp2p-record v0.2.0/go.mod h1:I+3zMkvvg5m2OcSdoL0KPljyJyvNDFGKX7QdlpYUcwk= diff --git a/subscriber_notifee.go b/subscriber_notifee.go index 759db76c6..c1eb69387 100644 --- a/subscriber_notifee.go +++ b/subscriber_notifee.go @@ -96,7 +96,6 @@ func handlePeerChangeEvent(dht *IpfsDHT, p peer.ID) { return } else if valid { dht.peerFound(p) - dht.fixRTIfNeeded() } else { dht.peerStoppedDHT(p) }