server: shutdown the actual http server#1689
Merged
bwplotka merged 1 commit intothanos-io:masterfrom Oct 28, 2019
Merged
Conversation
PR thanos-io#1680 introduced graceful handling for the HTTP server in Thanos, but the graceful `Shutdown` call was being performed on an `http.Server` instance that was *not* running at all. The actual server that was listening for requests was started through `http.Serve`, so there was no reference to the server struct that we could use to shut it down. This was causing all of Thanos to freeze after receiving an exit signal, because the run-group for the HTTP server would never finalize. This seems like an oversight because the `(*Server).srv` field was being properly initialized with an HTTP server. Fix this by calling `ListenAndServe` on our initialized server. Signed-off-by: Vicent Marti <vmg@strn.cat>
2 tasks
povilasv
approved these changes
Oct 28, 2019
Member
|
@vmg Thanks a lot for fixing that. I guess I made a mistake while trying to ensure parity with the old implementation. |
2 tasks
Author
|
🙇❤️ |
bwplotka
approved these changes
Oct 28, 2019
Member
bwplotka
left a comment
There was a problem hiding this comment.
Nice! I think CHANGELOG is only for not released things, so it's all good 👍 Thank you!
GiedriusS
pushed a commit
that referenced
this pull request
Oct 28, 2019
PR #1680 introduced graceful handling for the HTTP server in Thanos, but the graceful `Shutdown` call was being performed on an `http.Server` instance that was *not* running at all. The actual server that was listening for requests was started through `http.Serve`, so there was no reference to the server struct that we could use to shut it down. This was causing all of Thanos to freeze after receiving an exit signal, because the run-group for the HTTP server would never finalize. This seems like an oversight because the `(*Server).srv` field was being properly initialized with an HTTP server. Fix this by calling `ListenAndServe` on our initialized server. Signed-off-by: Vicent Marti <vmg@strn.cat> Signed-off-by: Giedrius Statkevičius <giedriuswork@gmail.com>
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.
Hi friends! It seems like #1680 introduced a regression that was preventing Thanos from shutting down cleanly. This fixes it. I did not add a CHANGELOG entry because, well, it's a regression which we fixed early. Let me know if you need me to add one.
Changes
Commit message inline for your convenience:
Verification
Manually verified that
thanoscan now be shutdown with a shutdown signal.cc @antonio