Bugfix: log-consumer go-routine should recover from closed-connection #369
+102
−1
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.
As best I can tell, a direct commit to the master branch bc6fdab made an attempt at recovering the log-position of a container in the scenario of a closed connection. The logic is all sound, but I think the string used to detect a closed-connection is not (has never been) correct.
The source of the error is
internal/poll
'serrNetClosing
. It's error string has been set as:"use of closed network connection"
since the beginning (5 years ago). Of course it would be much cleaner to detect a connection-closed error without string-matching but as stated in the mentioned commit, the error type for this was only exported by thenet
package in go 1.16