Root cause of the 2m8s hang (which matched ResponseHeaderTimeout=180s): httptest's Hijack() discards the buffered writer, losing any bytes written via w.WriteHeader/w.Write that weren't already flushed to the raw TCP conn. The HTTP client therefore never receives response headers, blocking on ResponseHeaderTimeout (3 min). Fix: write the raw HTTP response directly to the raw conn AFTER Hijack(), completely bypassing httptest's buffered writer. This ensures: - Response headers reach the client immediately (not lost to buffered writer) - Client starts reading the response body - conn.Close() fires while client is mid-read → Read() returns EOF/error - executeDelegation completes in seconds, not minutes Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| cmd | ||
| internal | ||
| migrations | ||
| pkg/provisionhook | ||
| .air.toml | ||
| .ci-force | ||
| .gitignore | ||
| .golangci.yaml | ||
| Dockerfile | ||
| Dockerfile.dev | ||
| Dockerfile.tenant | ||
| entrypoint-tenant.sh | ||
| go.mod | ||
| go.sum | ||