Skip to content

Commit 6d0f9a4

Browse files
authored
fix(p2p/peerTracker): remove timeout during bootstrapping (#171)
* Revert "fix(p2p/peerTracker): fix bootstraping (#169)" This reverts commit dbcee58. * fix(p2p/peerTracker): remove timeout during bootstrap
1 parent dbcee58 commit 6d0f9a4

File tree

3 files changed

+7
-22
lines changed

3 files changed

+7
-22
lines changed

p2p/exchange.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func (ex *Exchange[H]) Start(ctx context.Context) error {
103103

104104
// bootstrap the peerTracker with trusted peers as well as previously seen
105105
// peers if provided.
106-
return ex.peerTracker.bootstrap(ctx, ex.trustedPeers())
106+
return ex.peerTracker.bootstrap(ex.trustedPeers())
107107
}
108108

109109
func (ex *Exchange[H]) Stop(ctx context.Context) error {
@@ -172,7 +172,7 @@ func (ex *Exchange[H]) Head(ctx context.Context, opts ...header.HeadOption[H]) (
172172
trace.WithAttributes(attribute.String("peerID", from.String())),
173173
)
174174
defer newSpan.End()
175-
175+
176176
headers, err := ex.request(reqCtx, from, headerReq)
177177
if err != nil {
178178
newSpan.SetStatus(codes.Error, err.Error())

p2p/peer_tracker.go

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -78,39 +78,24 @@ func newPeerTracker(
7878
//
7979
// NOTE: bootstrap is intended to be used with an on-disk peerstore.Peerstore as
8080
// the peerTracker needs access to the previously-seen peers' AddrInfo on start.
81-
func (p *peerTracker) bootstrap(ctx context.Context, trusted []libpeer.ID) error {
82-
connectCtx, cancel := context.WithTimeout(context.Background(), time.Second*60)
83-
defer cancel()
84-
85-
wg := sync.WaitGroup{}
86-
wg.Add(len(trusted))
81+
func (p *peerTracker) bootstrap(trusted []libpeer.ID) error {
8782
for _, trust := range trusted {
88-
trust := trust
89-
go func() {
90-
defer wg.Done()
91-
p.connectToPeer(connectCtx, trust)
92-
}()
83+
go p.connectToPeer(p.ctx, trust)
9384
}
9485

9586
// short-circuit if pidstore was not provided
9687
if p.pidstore == nil {
9788
return nil
9889
}
9990

100-
prevSeen, err := p.pidstore.Load(ctx)
91+
prevSeen, err := p.pidstore.Load(p.ctx)
10192
if err != nil {
10293
return err
10394
}
10495

105-
wg.Add(len(prevSeen))
10696
for _, peer := range prevSeen {
107-
peer := peer
108-
go func() {
109-
defer wg.Done()
110-
p.connectToPeer(connectCtx, peer)
111-
}()
97+
go p.connectToPeer(p.ctx, peer)
11298
}
113-
wg.Wait()
11499
return nil
115100
}
116101

p2p/peer_tracker_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ func TestPeerTracker_Bootstrap(t *testing.T) {
105105

106106
go tracker.track()
107107

108-
err = tracker.bootstrap(ctx, prevSeen[:2])
108+
err = tracker.bootstrap(prevSeen[:2])
109109
require.NoError(t, err)
110110

111111
assert.Eventually(t, func() bool {

0 commit comments

Comments
 (0)