all: Failure reporting fixes (#7331)

This commit is contained in:
Simon Frei 2021-02-05 11:21:14 +01:00 committed by GitHub
parent ffc14a77c6
commit 27a34609a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 9 deletions

View File

@ -47,7 +47,7 @@ func main() {
mux.Handle("/", cr)
if *dsn != "" {
mux.HandleFunc("/failure", handleFailureFn(*dsn))
mux.HandleFunc("/newcrash/failure", handleFailureFn(*dsn))
}
log.SetOutput(os.Stdout)

View File

@ -1202,7 +1202,7 @@ func unchanged(nf, ef protocol.FileIntf) bool {
func (db *Lowlevel) handleFailure(err error) {
db.checkErrorForRepair(err)
if shouldReportFailure(err) {
db.evLogger.Log(events.Failure, err)
db.evLogger.Log(events.Failure, err.Error())
}
}

View File

@ -123,13 +123,15 @@ func (h *failureHandler) Serve(ctx context.Context) error {
if sub != nil {
sub.Unsubscribe()
reports := make([]FailureReport, 0, len(h.buf))
for descr, stat := range h.buf {
reports = append(reports, newFailureReport(descr, stat.count))
if len(h.buf) > 0 {
reports := make([]FailureReport, 0, len(h.buf))
for descr, stat := range h.buf {
reports = append(reports, newFailureReport(descr, stat.count))
}
timeout, cancel := context.WithTimeout(context.Background(), finalSendTimeout)
defer cancel()
sendFailureReports(timeout, reports, url)
}
timeout, cancel := context.WithTimeout(context.Background(), finalSendTimeout)
defer cancel()
sendFailureReports(timeout, reports, url)
}
return err
}
@ -192,7 +194,7 @@ func sendFailureReports(ctx context.Context, reports []FailureReport, url string
reqCtx, reqCancel := context.WithTimeout(ctx, sendTimeout)
defer reqCancel()
req, err := http.NewRequestWithContext(reqCtx, http.MethodGet, url, &b)
req, err := http.NewRequestWithContext(reqCtx, http.MethodPost, url, &b)
if err != nil {
l.Infoln("Failed to send failure report:", err)
return