Closed lidel closed 3 weeks ago
golang/go#69186 ?
I don't think we have any cases where we copy timers.
One of potential causes: https://github.com/quic-go/quic-go/pull/4659 Upstream bug: https://github.com/golang/go/issues/69312 / https://github.com/golang/go/issues/69333
We will wait for upstream go to fix it in new patch release.
Version
Config
Description
Bug
0.30.0-rc2 switched to go1.23, and we experience an increased number of connections when running go-libp2p + go-libp2p-kad-dht server, confirmed both by me, and anecdotal evidence from discussion forums.
The problem seem to go away if running with forced go1.22 timer behavior
GODEBUG=asynctimerchan=1
(Ref. https://go.dev/wiki/Go123Timer)How to reproduce
GODEBUG=asynctimerchan=0
to force Go 1.23 timersGODEBUG=asynctimerchan=1
to force Go 1.22 timersGODEBUG=asynctimerchan=0
will have significantly more connections (e.g. 6k vs 200)GODEBUG=asynctimerchan=0
, it sometimes takes a second time to correctly stop the daemon.Next steps
Short term, I will revert https://github.com/ipfs/kubo/pull/10486 and switch back to 1.22 for 0.30.0 release and keep it until go-libp2p and go-libp2p-kad-dht are compatible with 1.23.