build: fix resolvedNode cache and panic protection#2467
Merged
tonistiigi merged 2 commits intodocker:masterfrom May 22, 2024
Merged
build: fix resolvedNode cache and panic protection#2467tonistiigi merged 2 commits intodocker:masterfrom
tonistiigi merged 2 commits intodocker:masterfrom
Conversation
Currently it is possible for boot() to be called multiple times, resulting multiple slow requests to establish connection (eg. multiple container inspects for container driver). Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
resolveNode methods can call with nil logger. Although the results should already be cached now in resolver this makes the protection more explicit. Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
tonistiigi
commented
May 20, 2024
| resolver: r, | ||
| driverIndex: 0, | ||
| }) | ||
| nodeIdxs = append(nodeIdxs, 0) |
Member
Author
There was a problem hiding this comment.
This seemed to be another issue. Atm. because first boot was called with empty index array this accidentally saved us from one more extra uncached call (the real first boot happened when opts() was first called). Now there is one more call to boot() but because all calls are cached the number of calls does not matter anymore.
jedevc
approved these changes
May 22, 2024
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.
fixes #2464
In addition to panic fix in the second commit, this fixes the inefficiency where
driver.Bootcould be called multiple times, resulting multiple docker API calls for example in the case of container driver.I put the fixes to multiple commits in case we want to only cherry pick the second one but the first one is also pretty bad imho.
This could use further refactoring. Passing the
nillogger should not be necessary if all the resolvedNode instances are guaranteed to already be booted and caps loaded.