-
Notifications
You must be signed in to change notification settings - Fork 668
fix: GZIP compression compatibility for empty responses #5480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: release/v26.0
Are you sure you want to change the base?
Conversation
|
/review |
PR Compliance Guide 🔍(Compliance updated until commit 5c34a36)Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label Previous compliance checksCompliance check up to commit 37e2bcb
|
||||||||||||||||||||||||||||||||||||||||||||||||||
ⓘ Your approaching your monthly quota for Qodo. Upgrade your plan PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
ⓘ Your approaching your monthly quota for Qodo. Upgrade your plan PR Code Suggestions ✨No code suggestions found for the PR. |
37e2bcb to
03d3fc9
Compare
Deploying eventstore with
|
| Latest commit: |
5c34a36
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://7cd86c0a.eventstore.pages.dev |
| Branch Preview URL: | https://w1am-fix-gzip-compression-co.eventstore.pages.dev |
User description
The previous implementation incorrectly used a Static Huffman block header (BTYPE=01) while also including LEN/NLEN fields, which only apply to Stored blocks (BTYPE=00). This produced an invalid DEFLATE structure that some gRPC clients accepted due to lenient parsing, while stricter implementations (Python grpcio) rejected it.
This PR switches from static Huffman encoding to stored block format for empty payloads. Stored format is more explicit and ensures broader compatibility across strict and lenient GZIP parsers.
Auto-created Ticket
#5481
PR Type
Bug fix
Description
Fixed DEFLATE block structure for empty GZIP payloads
Changed from invalid static Huffman format to stored block format
Ensures compatibility with strict GZIP parsers like Python grpcio
Added RFC compliance comments for clarity
Diagram Walkthrough
File Walkthrough
Rfc1952GzipCompressionProvider.cs
Correct DEFLATE stored block format for empty payloadsrc/KurrentDB.Common/Compression/Rfc1952GzipCompressionProvider.cs