-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Incomplete Response Body in handleUpstreamResponse
Description
The server intermittently returns incomplete or empty response bodies, particularly with responses larger than 4KB.
Steps to Reproduce
- Start the server:
docker compose up --build
- Make requests to an endpoint that returns >4KB:
curl -v http://localhost:8080/get
- Repeat multiple times
Expected Behavior
Consistently returns complete response body for every request.
Actual Behavior
- Sometimes returns complete response
- Sometimes returns partial/empty response
- No errors logged
Environment
- OS: Linux Docker
- Go Version: go1.23.2
- Commit: c6a947a
Root Cause
handleUpstreamResponse in internal/server/server.go uses a fixed 4KB buffer and doesn't handle:
- Responses larger than buffer size
- Chunked transfer encoding
- Partial reads/writes
Proposed Fix
- Implement dynamic buffering for large responses
- Add chunked transfer encoding support
- Handle partial reads/writes
- Improve error logging
Severity
High - Affects response reliability
Reproduction Rate
Intermittent (happens sometimes, not always)
Metadata
Metadata
Assignees
Labels
No labels