Skip to content

p2p: race condition in dialer scheduler #23430

@fxfactorial

Description

@fxfactorial
WARNING: DATA RACE                                                                                                    
Read at 0x00c03c44d2a0 by goroutine 152:                                                                              
  github.com/ethereum/go-ethereum/p2p.(*dialScheduler).updateStaticPool()                                             
      github.com/ethereum/go-ethereum/p2p/dial.go:433 +0x2e4                                                          
  github.com/ethereum/go-ethereum/p2p.(*dialScheduler).expireHistory.func1()                                          
      github.com/ethereum/go-ethereum/p2p/dial.go:378 +0xcf                                                           
  github.com/ethereum/go-ethereum/p2p.(*expHeap).expire()                                                             
      github.com/ethereum/go-ethereum/p2p/util.go:59 +0x10a 
  github.com/ethereum/go-ethereum/p2p.(*dialScheduler).expireHistory()
      github.com/ethereum/go-ethereum/p2p/dial.go:375 +0x124
  github.com/ethereum/go-ethereum/p2p.(*dialScheduler).loop()
      github.com/ethereum/go-ethereum/p2p/dial.go:308 +0x239a
  github.com/ethereum/go-ethereum/p2p.newDialScheduler.func2()
      github.com/ethereum/go-ethereum/p2p/dial.go:186 +0x53 
  github.com/panjf2000/ants/v2.(*goWorker).run.func1()
      github.com/panjf2000/ants/[email protected]/worker.go:70 +0xd9

Previous write at 0x00c03c44d2a0 by goroutine 1038:
  github.com/ethereum/go-ethereum/p2p.(*dialTask).resolve() 
      github.com/ethereum/go-ethereum/p2p/dial.go:537 +0x204
  github.com/ethereum/go-ethereum/p2p.(*dialTask).run()
      github.com/ethereum/go-ethereum/p2p/dial.go:498 +0xf9 
  github.com/ethereum/go-ethereum/p2p.(*dialScheduler).startDial.func1()
      github.com/ethereum/go-ethereum/p2p/dial.go:465 +0x58 
  github.com/panjf2000/ants/v2.(*goWorker).run.func1()
      github.com/panjf2000/ants/[email protected]/worker.go:70 +0xd9


off of latest master -

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions