use RawConn.Control to get fd instead of Fd()#3
Merged
brucespang merged 1 commit intobrucespang:masterfrom Nov 4, 2020
Merged
Conversation
Owner
|
Looks good to me, thank you for the patch! |
yurishkuro
pushed a commit
to jaegertracing/jaeger
that referenced
this pull request
May 11, 2023
<!-- Please delete this comment before posting. We appreciate your contribution to the Jaeger project! 👋🎉 Before creating a pull request, please make sure: - Your PR is solving one problem - You have read the guide for contributing - See https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING.md - You signed all your commits (otherwise we won't be able to merge the PR) - See https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md#certificate-of-origin---sign-your-work - You added unit tests for the new functionality - You mention in the PR description which issue it is addressing, e.g. "Resolves #123" --> ## Which problem is this PR solving? Resolves #4448 ## Short description of the changes Jaeger agent gets stuck when closing with SocketBufferSize set. This is because `Close()` of `net.UDPConn` will be blocked if `Fd()` is used to get the file descriptor. Use `RawConn.Control` instead to get fd to set the socket buffer. Same issue was discussed here: golang/go#29277 The fix refers to here: brucespang/go-tcpinfo#3 Signed-off-by: Chen Xu <chen.x@uber.com>
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.
file.Fd() has a potential bug when work with unblocking connection which is the default setting of Golang lib.
This will case tcpconn becoming blocking, and may case goroutine blocked at conn.Close().
check this link for more information: golang/go#29277
So i use RawConn.Control which used in many Golang lib to do the syscall.