fix: destroy client socket on upstream mid-stream error

Prevents hanging connections when the upstream response stream errors
after headers have already been sent to the client.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-06 02:19:46 -06:00
parent 2e3e5e5e59
commit f4dca8ca73
+2
View File
@@ -410,6 +410,7 @@ async function handleRequest(req, res, pool) {
upstreamRes.on("error", async (err) => {
completed = true
res.destroy()
const requestCompletedAt = new Date()
const latencyMs = requestCompletedAt.getTime() - requestStartedAt.getTime()
await failUsageEvent(pool, eventId, {
@@ -493,6 +494,7 @@ async function handleRequest(req, res, pool) {
})
upstreamRes.on("error", async (err) => {
res.destroy()
const requestCompletedAt = new Date()
const latencyMs = requestCompletedAt.getTime() - requestStartedAt.getTime()
await failUsageEvent(pool, eventId, {