mirror of
https://github.com/pgsty/minio.git
synced 2026-08-09 07:43:29 +03:00
a36fd8fffb
WithDeadline runs its work function on a goroutine of its own, so a panic inside it is reachable by no recover() the caller can install: net/http and internal/grid each recover only on the goroutine they own. Left unhandled it terminates the process, which turns any malformed internode payload that trips a bug in work() into a remote node kill. Eleven call sites run wire-derived storage work through this path. The project already recovers panics at both request boundaries; this extends the same policy to the one goroutine those recovers cannot reach. Stack dumps are capped over the process lifetime. The panic is by definition reachable from untrusted input, so writing a full stack per occurrence would trade a node kill for unbounded log amplification, one small request each. The error is returned every time regardless, so the caller's own rate-limited logging still sees each occurrence. Inherited from upstream; the fork added no lines to this path. Co-authored-by: ChatGPT <noreply@openai.com> Co-authored-by: Claude <noreply@anthropic.com>