[fit] feat(resources): implement three-level cleanup for HTTP request lifecycle#219
Merged
CodeCasterX merged 2 commits into3.5.xfrom Jul 28, 2025
Merged
[fit] feat(resources): implement three-level cleanup for HTTP request lifecycle#219CodeCasterX merged 2 commits into3.5.xfrom
CodeCasterX merged 2 commits into3.5.xfrom
Conversation
… lifecycle This commit introduces a robust resource release mechanism across three critical layers to prevent memory leaks and state pollution in long-lived connections: 1. **Pre-request cleanup** Added `clearRequest(ctx)` at the beginning of `channelRead()` in the first business handler to reset Channel-scoped attributes (e.g., `AttributeKey<RequestContext>`) before processing new requests[1,2](@ref). This ensures isolated request states without cross-request contamination. 2. **Exception-triggered cleanup** Enhanced `exceptionCaught()` to immediately release: Followed by `ctx.close()` to guarantee `channelInactive()` invocation. 3. **Connection termination safeguard** Strengthened `channelInactive()` to perform defensive cleanup of: This triple-layer approach covers: ✅ Normal request processing paths ✅ Connection closures (client/timeout/graceful shutdown) ✅ All exception scenarios (I/O errors, decoding failures, business logic crashes) Fixes #145 (Resource leak during connection reset)
c34ad9a to
9158d62
Compare
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.
🔗 相关问题 / Related Issue
Issue 链接 / Issue Link: #145
📋 变更类型 / Type of Change
📝 变更目的 / Purpose of the Change
因为Github Action会偶发性执行Http请求失败,于是详细分析失败的原因,试图修复潜在的问题。
📋 主要变更 / Brief Changelog
🧪 验证变更 / Verifying this Change
测试步骤 / Test Steps
测试覆盖 / Test Coverage
📸 截图 / Screenshots
✅ 贡献者检查清单 / Contributor Checklist
请确保你的 Pull Request 符合以下要求 / Please ensure your Pull Request meets the following requirements:
基本要求 / Basic Requirements:
代码质量 / Code Quality:
测试要求 / Testing Requirements:
mvn -B clean package -Dmaven.test.skip=true,elsa README 中的编译检查 / Basic checks passmvn clean install/ Unit tests pass文档和兼容性 / Documentation and Compatibility:
📋 附加信息 / Additional Notes
审查者注意事项 / Reviewer Notes: