-
Notifications
You must be signed in to change notification settings - Fork 712
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make report propagation more reliable #459
Conversation
888a080
to
444cf5b
Compare
1d92b7c
to
287f024
Compare
cfa32f7
to
fbe513e
Compare
"net" | ||
"strings" | ||
"sync" | ||
|
||
cache "github.com/hashicorp/golang-lru" |
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
91efd86
to
d8ac330
Compare
The problem was we were pushing reports on the main probe thread, one-by-one. If one of the ips was unreachable, it would block the pushing of all others, and the probe would stall and the UI go blank. And tcp connection time out is quite long. |
@@ -83,12 +94,73 @@ func (p HTTPPublisher) Publish(rpt report.Report) error { | |||
return nil | |||
} | |||
|
|||
// Stop implements Publisher | |||
func (p HTTPPublisher) Stop() {} |
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
When full, this seems to attempt to throw away new reports, and keep retrying the original one which failed. Don't we really only care about the latest report? |
We don't retry the sending of any reports - why do you think it does? |
You are right, misread the backoff waiting bit. |
Aside from making the http handler cancel the existing request (if that is important), LGTM. |
Make report propagation more reliable
Fixes #458, fixes #467