session: fix run and close synchronization#3881
Merged
jedevc merged 1 commit intomoby:masterfrom May 19, 2023
Merged
Conversation
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Member
|
Does this one need a cherry-pick for v0.11 if we need it in Docker 24.0.1 ? /cc @crazy-max @AkihiroSuda @jedevc ptal |
Member
|
jedevc
approved these changes
May 19, 2023
Member
Author
This patch is only on client-side and doesn't need to be vendored to Moby. We do need to get this into |
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.
Build call runs solve, session and status calls in parallel using errgroup. Session is closed after the solve call returns. If solve call returns very quickly there is a possibility that this close signal comes before the session has even been established. In that case session is established later and is kept running. This doesn't happen forever; there is a 3 second timeout in https://github.com/moby/buildkit/blob/v0.11.6/client/solve.go#L236 while we wait for the server to shut all other requests down gracefully. This means that when this case happens, for user's perspective, there is a 3-second pause, and after that everything continues normally.