Raise EOFError if the socket has been closed #1524
Closed
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.
ref #1502
ref #1507
Fixes errors:
and
According to Socket's read_nonblock call nil can be returned only in case of an empty chunk - https://github.com/ruby/ruby/blob/96db72ce38b27799dd8e80ca00696e41234db6ba/io.c#L2905
We currently process it by returning nil from read_nonblock and then checking the chunk and raising
EOFError(https://github.com/puma/puma/blob/master/lib/puma/client.rb#L292). The problem is that this exception is handled incorrectly but it can be fixed if we treat it asConnectionErrorwhile calling read_nonblock.Since
EOFErroris a subclass ofIOErrorthe exception will be handled within this block https://github.com/puma/puma/blob/master/lib/puma/client.rb#L283