Skip to content

Commit 324abf5

Browse files
fix: add chainsync client close and close p2p channels in a single go routine
1 parent 754f8c8 commit 324abf5

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

rolling-shutter/medley/chainsync/client.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,13 @@ func (s *Client) ChainID(ctx context.Context) (*big.Int, error) {
146146
return s.chainID, nil
147147
}
148148

149-
func (s *Client) Start(_ context.Context, runner service.Runner) error {
149+
func (s *Client) Start(ctx context.Context, runner service.Runner) error {
150+
runner.Go(func() error {
151+
<-ctx.Done()
152+
s.Client.Close()
153+
s.log.Debug("chainsync client closed")
154+
return nil
155+
})
150156
return runner.StartService(s.getServices()...)
151157
}
152158

rolling-shutter/p2p/bootstrap.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ func bootstrap(
100100
_, err := retry.FunctionCall(
101101
ctx,
102102
f,
103+
retry.NumberOfRetries(10),
103104
retry.StopOnErrors(errInsufficientBootstrpConfigured),
104105
retry.Interval(2*time.Second))
105106
if err != nil {

rolling-shutter/p2p/p2p.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,6 @@ func (p *P2PNode) Run(
103103
p.mux.Lock()
104104
defer p.mux.Unlock()
105105

106-
runner.Defer(func() {
107-
close(p.GossipMessages)
108-
})
109-
110106
if err := p.init(ctx); err != nil {
111107
return err
112108
}
@@ -120,6 +116,7 @@ func (p *P2PNode) Run(
120116
if err := p.dht.Close(); err != nil {
121117
log.Error().Err(err).Msg("error closing dht")
122118
}
119+
close(p.GossipMessages)
123120
log.Debug().Msg("host closed")
124121
return nil
125122
})

0 commit comments

Comments
 (0)