mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
Generate Stack Traces for http response with status code zero
When we spit out a http reponse with a `0` http status code we should log a trace back so we can easily find where things went wrong. Change-Id: Ic2aadec3a3de85fbdf64da66d6d12e3c631f409d
This commit is contained in:
parent
bfa5876311
commit
72792d59f4
@ -25,6 +25,17 @@ import (
|
||||
"k8s.io/apiserver/pkg/server/httplog"
|
||||
)
|
||||
|
||||
func badHTTPResponse() httplog.StacktracePred {
|
||||
return func(status int) bool {
|
||||
// http status code should not be zero
|
||||
if status == 0 {
|
||||
klog.Errorf("Bad HTTP Response - status is zero")
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// WithPanicRecovery wraps an http Handler to recover and log panics.
|
||||
func WithPanicRecovery(handler http.Handler) http.Handler {
|
||||
return withPanicRecovery(handler, func(w http.ResponseWriter, req *http.Request, err interface{}) {
|
||||
@ -39,7 +50,7 @@ func withPanicRecovery(handler http.Handler, crashHandler func(http.ResponseWrit
|
||||
crashHandler(w, req, err)
|
||||
})
|
||||
|
||||
logger := httplog.NewLogged(req, &w)
|
||||
logger := httplog.NewLogged(req, &w).StacktraceWhen(badHTTPResponse())
|
||||
defer logger.Log()
|
||||
|
||||
// Dispatch to the internal handler
|
||||
|
Loading…
Reference in New Issue
Block a user