ignore ENOTCONN error during closing state of Connection #653
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.
If the underlying socket is already closed during State::Closing, it is not an error to get
ENOTCONN
when calling shutdown, so ignore it.This can happen when a connection is local to the host and the kernel already has shutdown the socket.
related to hyperium/hyper#3070
(with this change, i can't reproduce the behaviour there anymore)
not completely sure about also checking reason for
NO_ERROR
, maybe should also check intiator forLibrary
?IMO this change is ok, because AFAICS this only happens when we come from
handle_poll2_result
where it's already noted that we're 'already going away' and it does not make sense to bubble a ENOTCONN up when trying to shutdown the connection as it's already shut down.