You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Oct 2, 2020. It is now read-only.
The original design intent was to default to dropping items; silently at first / by default, but with an optional affordance for watchers that want to know when/if/how-many drops are happening. E.g. the resp protocol could very easily pass along such side channel data with little chance of it being confused with the actual watched items.
Currently it seems that the following happens:
marshaled.DataSource.HandleItem deactivates on first timeout
the shutdown phase in the tail of marshaled.DataSource.processItem isn't successfully closing all active watchers
Part one is just our current naive, perhaps overly aggressive, design choice; it could be that something more like a circuit breakers "only deactivate if more than X% get dropped within T time" would be better.
Part two is a flat out bug: something's causing that http connection to zombie on.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Use case: 10s-100s of thousands of items per second
Repro Steps:
log a LOT of items, from a lot of goroutines
curl -X WATCH localhost:4040/tap/
Symptom:
The first several hundred items come through, then all output abruptly stops
Findings so far:
What should happen:
We should silently? drop items, but keep trying to pump them out.
https://github.com/uber-go/gwr/blob/dev/internal/marshaled/source.go#L411
The text was updated successfully, but these errors were encountered: