From: David Symonds Date: Fri, 15 Mar 2013 03:45:00 +0000 (+1100) Subject: misc/dashboard/codereview: better debugging when some fetches fail. X-Git-Tag: go1.1rc2~497 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=247bc7213170feb4706de889fc71ac8f8cc3ac92;p=gostls13.git misc/dashboard/codereview: better debugging when some fetches fail. R=rsc CC=golang-dev https://golang.org/cl/7836045 --- diff --git a/misc/dashboard/codereview/dashboard/cl.go b/misc/dashboard/codereview/dashboard/cl.go index e150ea123d..0ef3303e9d 100644 --- a/misc/dashboard/codereview/dashboard/cl.go +++ b/misc/dashboard/codereview/dashboard/cl.go @@ -178,8 +178,14 @@ func handleAssign(w http.ResponseWriter, r *http.Request) { return } defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + c.Errorf("Failed reading body: %v", err) + http.Error(w, err.Error(), 500) + return + } if resp.StatusCode != 200 { - c.Errorf("Retrieving CL reviewer list failed: got HTTP response %d", resp.StatusCode) + c.Errorf("Retrieving CL reviewer list failed: got HTTP response %d\nBody: %s", resp.StatusCode, body) http.Error(w, "Failed contacting Rietveld", 500) return } @@ -187,7 +193,7 @@ func handleAssign(w http.ResponseWriter, r *http.Request) { var apiResp struct { Reviewers []string `json:"reviewers"` } - if err := json.NewDecoder(resp.Body).Decode(&apiResp); err != nil { + if err := json.Unmarshal(body, &apiResp); err != nil { // probably can't be retried msg := fmt.Sprintf("Malformed JSON from %v: %v", url, err) c.Errorf("%s", msg) @@ -212,8 +218,14 @@ func handleAssign(w http.ResponseWriter, r *http.Request) { return } defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + c.Errorf("Failed reading Gobot body: %v", err) + http.Error(w, err.Error(), 500) + return + } if resp.StatusCode != 200 { - c.Errorf("Gobot GET failed: got HTTP response %d", resp.StatusCode) + c.Errorf("Gobot GET failed: got HTTP response %d\nBody: %s", resp.StatusCode, body) http.Error(w, "Failed contacting Gobot", 500) return }