-
Notifications
You must be signed in to change notification settings - Fork 37
Comments
Maybe introduced by #115? We do aggregate all errors now. |
Is there any more detail? |
Also are there any stuck goroutines precluding the dial from finishing and accumulating all these errors? |
Maybe stuck in a channel though. edit: that would correlate well with a stuck goroutine precluding the dial from finishing. |
Yeah, was thinking the same as @vyzo. Could you try with the commit previous to that PR being merged? Not sure if it’s a leak (us unintentionally retaining state) or just a side effect of accumulating all errors from the dial process (especially in the face of addrexplosion). |
Can you also check for signs of libp2p/go-libp2p-quic-transport#57? We do happen to have an open bug with stuck dials. |
This has almost certainly made it worse. However, we shouldn't be storing these errors anywhere.
It's probably not that. This error is allocated after all the transport dials finish so a stuck dial would prevent it. |
It could be the event logging of errors -- the weight of which is now augmented by multierrors. @Stebalien can you generate annotated source for these allocs? |
I don't have the traces but the buildup came from Line 259 in 94a49f1
|
Long-running queries can build up large error sets that we never actually use. This is exacerbated by libp2p/go-libp2p-swarm#115. fixes libp2p/go-libp2p-swarm#119
Long-running queries can build up large error sets that we never actually use. This is exacerbated by libp2p/go-libp2p-swarm#115. fixes libp2p/go-libp2p-swarm#119
Instead of storing _every_ error, store at most 32 errors (plus a "too many errors" error). Helps address #119
* Limits the number of dial errors we keep * Exposes the dial errors * Avoids string formatting unless we actually need to. Helps address #119
* Limits the number of dial errors we keep * Exposes the dial errors * Avoids string formatting unless we actually need to. Helps address #119
* Limits the number of dial errors we keep * Exposes the dial errors * Avoids string formatting unless we actually need to. Helps address #119
Long-running queries can build up large error sets that we never actually use. This is exacerbated by libp2p/go-libp2p-swarm#115. fixes libp2p/go-libp2p-swarm#119
* Limits the number of dial errors we keep * Exposes the dial errors * Avoids string formatting unless we actually need to. Helps address libp2p/go-libp2p-swarm#119
I'm seeing a massive memory leak leaking errors returned by doDial. Not sure where they're getting stashed, maybe in the dialer somewhere?
The text was updated successfully, but these errors were encountered: