fix(server): fix http response body resource leak in master controller forwarder#11772
Open
xuezhichao wants to merge 2 commits into
Open
fix(server): fix http response body resource leak in master controller forwarder#11772xuezhichao wants to merge 2 commits into
xuezhichao wants to merge 2 commits into
Conversation
Author
|
I have read the CLA Document and I hereby sign the CLA |
…r forwarder In ForwardMasterController, resp.Body is passed to c.DataFromReader() but is never closed. This causes TCP socket and file descriptor leakage on master controller API forwarding. Add defer resp.Body.Close() immediately after Do(req) error checking to resolve this connection leak.
45b22d9 to
10bfd92
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.
Background and Problem / 背景与问题
Chinese:
在多控制器部署架构中,控制器的 HTTP 路由转发模块(
ForwardMasterController)负责将 API 请求转发至主控制器。在当前的实现中,通过
http.DefaultClient.Do(req)发起 HTTP 请求后,直接将响应体resp.Body传递给了 Gin 框架的c.DataFromReader()处理: