mirror of
https://github.com/weaveworks/scope.git
synced 2026-02-14 18:09:59 +00:00
do not back off on timeouts when sending reports
...since doing so unnecessarily throttles report sending, to the point where the app is receiving reports so infrequently that often it has no data to show. The timeout period itself is sufficient to prevent thrashing. Fixes #2745.
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/rpc"
|
||||
"net/url"
|
||||
@@ -215,7 +216,16 @@ func (c *appClient) doWithBackoff(msg string, f func() (bool, error)) {
|
||||
backoff = initialBackoff
|
||||
continue
|
||||
}
|
||||
|
||||
if netErr, ok := err.(net.Error); ok && netErr.Timeout() {
|
||||
// The timeout period itself serves as a backoff that
|
||||
// prevents thrashing. Hence there is no need to introduce
|
||||
// further delays. Moreover, any delays between publishing
|
||||
// reports that exceed the app.window (defaults to 15s)
|
||||
// cause the UI to display no data, which is debilitating.
|
||||
log.Errorf("Error doing %s for %s: %v", msg, c.hostname, err)
|
||||
backoff = initialBackoff
|
||||
continue
|
||||
}
|
||||
log.Errorf("Error doing %s for %s, backing off %s: %v", msg, c.hostname, backoff, err)
|
||||
select {
|
||||
case <-time.After(backoff):
|
||||
|
||||
Reference in New Issue
Block a user