Merged
Conversation
Contributor
Author
|
@hsbt I would love to get a review on this |
rhenium
reviewed
Nov 17, 2025
lib/resolv.rb
Outdated
| raise Errno::ECONNRESET if len_data.nil? | ||
| len = len_data.unpack('n')[0] | ||
| reply = @socks[0].read(len) | ||
| raise Errno::ECONNRESET if reply.nil? |
Member
There was a problem hiding this comment.
While we're at it, could we also fix the cases where len_data.bytesize != 2 and reply.bytesize != len?
Raising Errno::ECONNRESET when it doesn't involve the ECONNRESET errno feels wrong.
Contributor
Author
There was a problem hiding this comment.
Thanks for the comment! You are right that ECONNRESET was probably not the right exception. I changed it to EOFError which is probably not perfect, but much closer to reality.
5d37435 to
9c640bd
Compare
Contributor
Author
|
@hsbt do you think it would be possible to get a release with this PR? Thank you very much |
Member
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.
I've been seeing some intermittent
NoMethodError undefined method 'unpack' for nilexceptions raised from Resolv.This seems to have been caused by misbehaving DNS servers closing connections before answering. The fix is to simply make sure we were able to read data from the server before trying to interpret it.
The raised
Errno::ECONNRESETwill be caught by the calling#requestmethod and re-raised asResolvTimeout.