Repository navigation
fix: preserve shutdown errors and finish tracked cleanup - #38
Merged
Merged
Conversation
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The implementation consistently preserves genuine errors, handles benign duplicate closes, and includes comprehensive regression coverage.
Review effort: Balanced
Findings: None
What changed in this PR
Improves shutdown error handling while ensuring tracked connections are cleaned up.
Changes:
- Classifies only wholly closed-listener error trees as benign.
- Preserves listener and context errors while completing cleanup.
- Adds deterministic shutdown regressions and deployment documentation.
| File | Description |
|---|---|
internal/proxy/lifecycle.go |
Preserves shutdown errors and completes tracked cleanup. |
internal/proxy/http.go |
Normalizes duplicate HTTP listener-close errors. |
internal/proxy/listener_close_error_test.go |
Tests error-tree classification and context identity. |
internal/proxy/http_shutdown_close_result_test.go |
Tests real-TCP shutdown and close-error preservation. |
docs/DEPLOYMENT.md |
Documents source-build shutdown behavior. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.
Summary
Validation of d71d30a
make checkandmake racepassed on the final frozen files. Includes vet, shuffled Go tests, dependency/module/notices checks and 49 release-script tests.An initial fixture vet failure was corrected with explicit cancellation before final full gates. An initial offline Go-launcher setup error occurred before Linux compilation/tests; final verification used the hashed cached compiler directly. Prior logs are retained rather than counted as final successes.
Scope
No protocol/authentication/admission/relay/half-close/default-budget change. Injected unrelated listener failures are regression controls, not an OS incidence estimate. No browser-equivalence, large corpus, remote-host, deployment or new release claim. Caller context remains the cleanup bound; a noncooperative custom Listener.Close is not forcibly interruptible.
GitHub verification completed on the exact head: CI run 37039232746 (all 11 jobs), CodeQL 37039232784, Linux netem 37039232676, all successful on attempt 1. Container integration and completed dual-platform OCI export, plus netem success, were confirmed in the actual job logs. Automated review reported no findings (COMMENTED, not a human approval); no review threads remained.
Post-merge verification
Merged as
1b1ebaaeaa1a81ad0c21af3614fd28ca1c37fe59. The full tree matches tested headd71d30a4b05ea1865baf9b8aa4a1d77341a891d4(c71b2c01ee45a532361b95ad46b041f0bdb528b5), and local/remote main and five frozen file hashes agree. Main-focused race x3 passed (15 top-level executions). Main push runs also succeeded on attempt 1: CI 37039655691 (all 11 jobs), CodeQL 37039655679, Linux netem 37039655828. Actual main container/OCI and netem job logs confirmed successful integration and completed export. Worktree clean; no tag/release/deployment.