Repository navigation
fix(codeartifact): verify GOAWAY recovery and retain diagnostics - #35
Merged
Merged
Conversation
ravi-pplx
force-pushed
the
fix/codeartifact-stream-recovery-pplx
branch
from
November 7, 2026 07:00
64bb6c8 to
747ffad
Compare
ravi-pplx
marked this pull request as ready for review
November 7, 2026 18:37
ravi-pplx
force-pushed
the
fix/codeartifact-stream-recovery-pplx
branch
from
November 7, 2026 18:40
3f99e9a to
694dd75
Compare
ravi-pplx
added a commit
that referenced
this pull request
Nov 9, 2026
## Motivation Incomplete CodeArtifact responses must abort downstream transfers so package clients do not accept truncated metadata as a successful response. The abort behavior is already present; this follow-up makes upstream HTTP/2 GOAWAY failures diagnosable and protects real-client recovery against regressions. ## Changes - Classify recognized GOAWAY body errors as `http2_goaway` in stream-failure and origin metrics. Add the allowlisted HTTP/2 error code and bounded last-stream ID to stream-failure logs; these logs omit peer debug text, and those two fields are not metric dimensions. - Preserve cancellation precedence and generic transport classification for unknown or malformed metadata. - Add a real TLS HTTP/2 origin that sends GOAWAY only after partial data reaches the downstream client. Exercise certificate-verified HTTP/1.1 and HTTP/2 connections with checksum-pinned `uv` 0.13.4. - Cover uv recovery from a truncated PyPI index, retry exhaustion, rejection of partial index cache fills, and subsequent PEP 658 metadata resolution. A fresh client verifies warm-cache reuse of complete index and metadata responses. CI installs the pinned client; ordinary unit tests do not require it. ## Behavior and scope This does not change retry budgets, transport settings, response-abort behavior, or byte-range accounting. The uv tests cover resolution, not wheel installation or range-resume recovery. Consumer adoption and deployment remain separate. Created with [Perplexity](https://www.perplexity.ai/computer/tasks/5f970909-348b-4848-b2d7-6c1a3912784a)
ravi-pplx
added a commit
that referenced
this pull request
Nov 12, 2026
## Motivation Incomplete CodeArtifact responses must abort downstream transfers so package clients do not accept truncated metadata as a successful response. The abort behavior is already present; this follow-up makes upstream HTTP/2 GOAWAY failures diagnosable and protects real-client recovery against regressions. ## Changes - Classify recognized GOAWAY body errors as `http2_goaway` in stream-failure and origin metrics. Add the allowlisted HTTP/2 error code and bounded last-stream ID to stream-failure logs; these logs omit peer debug text, and those two fields are not metric dimensions. - Preserve cancellation precedence and generic transport classification for unknown or malformed metadata. - Add a real TLS HTTP/2 origin that sends GOAWAY only after partial data reaches the downstream client. Exercise certificate-verified HTTP/1.1 and HTTP/2 connections with checksum-pinned `uv` 0.13.4. - Cover uv recovery from a truncated PyPI index, retry exhaustion, rejection of partial index cache fills, and subsequent PEP 658 metadata resolution. A fresh client verifies warm-cache reuse of complete index and metadata responses. CI installs the pinned client; ordinary unit tests do not require it. ## Behavior and scope This does not change retry budgets, transport settings, response-abort behavior, or byte-range accounting. The uv tests cover resolution, not wheel installation or range-resume recovery. Consumer adoption and deployment remain separate. Created with [Perplexity](https://www.perplexity.ai/computer/tasks/5f970909-348b-4848-b2d7-6c1a3912784a)
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.
Motivation
Incomplete CodeArtifact responses must abort downstream transfers so package clients do not accept truncated metadata as a successful response. The abort behavior is already present; this follow-up makes upstream HTTP/2 GOAWAY failures diagnosable and protects real-client recovery against regressions.
Changes
http2_goawayin stream-failure and origin metrics. Add the allowlisted HTTP/2 error code and bounded last-stream ID to stream-failure logs; these logs omit peer debug text, and those two fields are not metric dimensions.uv0.13.4.Behavior and scope
This does not change retry budgets, transport settings, response-abort behavior, or byte-range accounting. The uv tests cover resolution, not wheel installation or range-resume recovery. Consumer adoption and deployment remain separate.
Created with Perplexity