From 6dcf47216ae9c0823eec754de4ebb133843f2bac Mon Sep 17 00:00:00 2001 From: Rutger Broekhoff Date: Tue, 2 Jan 2024 01:34:35 +0100 Subject: catch panic --- cmd/git-lfs-server/main.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cmd/git-lfs-server/main.go b/cmd/git-lfs-server/main.go index 0379117..e5fd7d1 100644 --- a/cmd/git-lfs-server/main.go +++ b/cmd/git-lfs-server/main.go @@ -20,6 +20,7 @@ import ( "os/exec" "path" "regexp" + "runtime/debug" "slices" "strconv" "strings" @@ -588,7 +589,15 @@ func (h *handler) handleBatchAPI(w http.ResponseWriter, r *http.Request, repo st } func (h *handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - ctx := context.WithValue(r.Context(), requestIDKey, xid.New().String()) + reqID := xid.New().String() + ctx := context.WithValue(r.Context(), requestIDKey, reqID) + w.Header().Set("X-Request-Id", reqID) + + defer func() { + if r := recover(); r != nil { + reqlog(ctx, "Panic when serving request: %s", debug.Stack()) + } + }() reqPath := os.Getenv("PATH_INFO") if reqPath == "" { -- cgit v1.2.3