]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/trace: log errors to console in AJAX handler
authorDmitry Vyukov <dvyukov@google.com>
Thu, 2 Jul 2015 18:33:30 +0000 (20:33 +0200)
committerDmitry Vyukov <dvyukov@google.com>
Thu, 2 Jul 2015 19:10:00 +0000 (19:10 +0000)
Fixes #11508

Change-Id: I72e83893b76f75685d6edfe65ca6691d97539226
Reviewed-on: https://go-review.googlesource.com/11864
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/trace/trace.go

index eb1aecdefda0a42405247921e29f38c0f79da938..0d2451b4ecec40b9b7d8a73c3601ffdf5c1ffede 100644 (file)
@@ -8,6 +8,7 @@ import (
        "encoding/json"
        "fmt"
        "internal/trace"
+       "log"
        "net/http"
        "os"
        "path/filepath"
@@ -67,9 +68,10 @@ func httpTraceViewerHTML(w http.ResponseWriter, r *http.Request) {
 
 // httpJsonTrace serves json trace, requested from within templTrace HTML.
 func httpJsonTrace(w http.ResponseWriter, r *http.Request) {
+       // This is an AJAX handler, so instead of http.Error we use log.Printf to log errors.
        events, err := parseEvents()
        if err != nil {
-               http.Error(w, err.Error(), http.StatusInternalServerError)
+               log.Printf("failed to parse trace: %v", err)
                return
        }
 
@@ -81,7 +83,7 @@ func httpJsonTrace(w http.ResponseWriter, r *http.Request) {
        if goids := r.FormValue("goid"); goids != "" {
                goid, err := strconv.ParseUint(goids, 10, 64)
                if err != nil {
-                       http.Error(w, fmt.Sprintf("failed to parse goid parameter '%v': %v", goids, err), http.StatusInternalServerError)
+                       log.Printf("failed to parse goid parameter '%v': %v", goids, err)
                        return
                }
                analyzeGoroutines(events)
@@ -95,7 +97,7 @@ func httpJsonTrace(w http.ResponseWriter, r *http.Request) {
 
        err = json.NewEncoder(w).Encode(generateTrace(params))
        if err != nil {
-               http.Error(w, fmt.Sprintf("failed to serialize trace: %v", err), http.StatusInternalServerError)
+               log.Printf("failed to serialize trace: %v", err)
                return
        }
 }