fix: protect nursery with mutex

This commit is contained in:
Richard Ramos 2024-03-20 10:06:49 -04:00 committed by Vitaly Vlasov
parent 14d13be8db
commit d61ecabd2f
No known key found for this signature in database
GPG Key ID: 23829CFA88DBE8D9

View File

@ -190,7 +190,9 @@ func (tab *Table) setFallbackNodes(nodes []*enode.Node) error {
return fmt.Errorf("bad bootstrap node %q: %v", n, err)
}
}
tab.mutex.Lock()
tab.nursery = wrapNodes(nodes)
tab.mutex.Unlock()
return nil
}
@ -302,7 +304,9 @@ func (tab *Table) doRefresh(done chan struct{}) {
func (tab *Table) loadSeedNodes() {
seeds := wrapNodes(tab.db.QuerySeeds(seedCount, seedMaxAge))
tab.mutex.Lock()
seeds = append(seeds, tab.nursery...)
tab.mutex.Unlock()
for i := range seeds {
seed := seeds[i]
age := log.Lazy{Fn: func() interface{} { return time.Since(tab.db.LastPongReceived(seed.ID(), seed.IP())) }}