panic when reading from backend failed to propagate stream error (#5952)

This commit is contained in:
WeidiDeng 2023-11-23 16:18:18 +08:00 committed by Matthew Holt
parent e55570298a
commit e9ac48b4be

View file

@ -962,10 +962,12 @@ func (h *Handler) finalizeResponse(
if err != nil { if err != nil {
// we're streaming the response and we've already written headers, so // we're streaming the response and we've already written headers, so
// there's nothing an error handler can do to recover at this point; // there's nothing an error handler can do to recover at this point;
// the standard lib's proxy panics at this point, but we'll just log // we'll just log the error and abort the stream here and panic just as
// the error and abort the stream here // the standard lib's proxy to propagate the stream error.
// see issue https://github.com/caddyserver/caddy/issues/5951
logger.Error("aborting with incomplete response", zap.Error(err)) logger.Error("aborting with incomplete response", zap.Error(err))
return nil // no extra logging from stdlib
panic(http.ErrAbortHandler)
} }
if len(res.Trailer) > 0 { if len(res.Trailer) > 0 {