[fix][prometheusexporter] Race condition between start and shutdown #36164
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.
Description
Adjusted the Start and Shutdown sequence of the prometheusexporter to prevent a race condition causing the
close tcp 127.0.0.1:8999: use of closed network connection
error as observed in #36139.The behaviour was changed in the following ways:
srv.Shutdown
will close all open listeners, the explicit call toln.Close
in the shutdown routine was removedLink to tracking issue
Fixes #36139
Testing
Unit testing, I temporarily increased the number of iterations on
TestPrometheusExporter
to 2000. The error did no longer occur. However sporadically another error occured:I assume that this is because the OS (in my case Windows) won't always close the underlying sockets immediately, blocking it for some time afterwards. I'm not sure there is anything we can do about that.
Documentation
n/a