rustPlatform.fetchCargoVendor: improve parallel fetching and add timeout #400865
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 #397309
Supersedes: #400738
This PR moves over to using
concurrent.futures.ThreadPoolExecutorinstead ofmultiprocessing.Poolbecause we can properly do some fail-early logic withThreadPoolExecutor.Also, add
timeout=(a,b)tosession.getcalls, so that we never deadlock the fetcher.I also lowered the
Retryobject's retry count down to 3.Note: even though this only touches the FOD part of fetchCargoVendor, this file is used by the non-FOD part as well, so we'll get rebuilds :/
Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Add a 👍 reaction to pull requests you find important.