Repository navigation
Conversation
Allow bounded response metadata larger than gRPC's default budget so an otherwise valid Storage response does not fail during header decoding. Cover accepted metadata and rejection above the new limit using loopback gRPC transport tests. Co-Authored-By: Codex (GPT-5) <noreply@openai.com>
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Contributor
There was a problem hiding this comment.
Code Review
This pull request configures the maximum inbound metadata size for the gRPC channel provider to 64 KB in GrpcStorageOptions and introduces a new test suite, GrpcResponseMetadataTest, to verify that metadata sizes up to this limit are accepted while larger sizes are rejected. There are no review comments, and I have no feedback to provide.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The gRPC Storage client currently inherits gRPC's 8 KiB inbound metadata limit. Larger response headers can fail with
INTERNAL: http2 exceptionandHeader size exceeded max allowed size (10240). For appendable uploads, losing the first acknowledgement can also leave a retry using the original generation condition after the server has already created a new generation.Change
Set a bounded 64 KiB inbound metadata limit on the Storage client's GAX channel provider. Add real-transport regression tests covering small response metadata, an 18,000-byte response header, and rejection of a 96 KiB response header. Generation conditions, request retries, and upload behavior are unchanged.
Validation
mvn -f java-storage/google-cloud-storage/pom.xml -DskipITs test: 1,377 tests, zero failures/errors.mvn -f java-storage/google-cloud-storage/pom.xml com.spotify.fmt:fmt-maven-plugin:check: passed with JDK 21.Scope and limitations
The default changes for gRPC Storage clients only; response metadata remains bounded. The larger cap increases the worst-case accepted metadata size. Cloud-backed integration tests were not run. CodeScene could not run because the local CLI is not authenticated. This draft does not change a downstream application's dependencies or deploy a client.
Co-Authored-By: Codex (GPT-5) noreply@openai.com