| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
This commit fixes several critical memory leaks in the gzip compression middleware that could lead to significant memory accumulation under specific usage patterns. Changes: 1. Fixed WebSocket/Hijack resource leak (compress.go:213-219) - Close gzip writer before hijacking connection - Prevents ~32KB leak per WebSocket connection - Critical for long-lived WebSocket connections 2. Fixed Flush() buffer accumulation (compress.go:200-204) - Clear buffer after successful write during Flush() - Prevents unbounded memory growth in SSE scenarios - Important for Server-Sent Events and streaming responses 3. Improved pool management (compress.go:138-149) - Check writer state before returning to pool - Prevent corrupted writers from being reused - Eliminates potential data corruption issues Impact: - WebSocket connections: no longer leak gzip writers (~32KB each) - SSE/streaming: prevents linear buffer growth - Pool safety: eliminates race conditions from reused writers Fixes potential memory leaks affecting: - WebSocket applications using compression middleware - Server-Sent Events endpoints - Long-lived streaming connections - High-concurrency scenarios
|
please provide proper description of the problem. it takes a little to much effort to understand the real-world situation, and you already have LLM created bullet list here so it should not be a problem. p.s. tests/poc would be also helpful. |
Sorry, something went wrong.
There was a problem hiding this comment.
Skipping pool.Put when gzip.Writer.Close errors avoids handing a broken writer back to the pool. Flush keeps the buffer when Write fails; nit: Hijack still ignores gw.Close() errors like the rest of this wrapper.
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
This commit fixes several critical memory leaks in the gzip compression middleware that could lead to significant memory accumulation under specific usage patterns.
Changes:
Fixed WebSocket/Hijack resource leak (compress.go:213-219)
Fixed Flush() buffer accumulation (compress.go:200-204)
Improved pool management (compress.go:138-149)
Impact:
Fixes potential memory leaks affecting: