-
-
Notifications
You must be signed in to change notification settings - Fork 646
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build_runtime_package_dependencies
might not be deterministic
#14843
Comments
It's possible that this would be a good testbed for #14195. |
Noticed this again tonight (without it, It reproduces locally if you restart
I think that rather than |
Running with
... has a different input digest in each run. That input was probably the output of some other process (or |
I can't make sense of inputs to that process being the culprit, but the outputs are almost certainly non-deterministic without extra effort. The sdists and wheels built by that process are being built by known and unknown 3rd parties (setuptools+wheel, poetry, flit, ...). They may respect pants/src/python/pants/backend/python/util_rules/dists.py Lines 212 to 215 in e7c6095
|
Yea, let's definitely do The reason inputs are relevant here though is that even if the |
…15292) As described in #14843, (some) tests which consumed `runtime_package_dependencies` would always miss the cache. This was because the dists generated for each run were slightly different, which came down to the `package_data` generated for `resources` being in a non-deterministic order due to iterating over a `set`. See #14195 (comment) for some thoughts on how to avoid this kind of issue in the future. Fixes #14843: warm CI times should drop by about 1 minute from ~3m to ~2m.
…antsbuild#15292) As described in pantsbuild#14843, (some) tests which consumed `runtime_package_dependencies` would always miss the cache. This was because the dists generated for each run were slightly different, which came down to the `package_data` generated for `resources` being in a non-deterministic order due to iterating over a `set`. See pantsbuild#14195 (comment) for some thoughts on how to avoid this kind of issue in the future. Fixes pantsbuild#14843: warm CI times should drop by about 1 minute from ~3m to ~2m. # Rust tests and lints will be skipped. Delete if not intended. [ci skip-rust]
…antsbuild#15292) As described in pantsbuild#14843, (some) tests which consumed `runtime_package_dependencies` would always miss the cache. This was because the dists generated for each run were slightly different, which came down to the `package_data` generated for `resources` being in a non-deterministic order due to iterating over a `set`. See pantsbuild#14195 (comment) for some thoughts on how to avoid this kind of issue in the future. Fixes pantsbuild#14843: warm CI times should drop by about 1 minute from ~3m to ~2m. # Rust tests and lints will be skipped. Delete if not intended. [ci skip-rust]
…Cherry-pick of #15292) (#15299) As described in #14843, (some) tests which consumed `runtime_package_dependencies` would always miss the cache. This was because the dists generated for each run were slightly different, which came down to the `package_data` generated for `resources` being in a non-deterministic order due to iterating over a `set`. See #14195 (comment) for some thoughts on how to avoid this kind of issue in the future. Fixes #14843: warm CI times should drop by about 1 minute from ~3m to ~2m. [ci skip-rust]
…Cherry-pick of #15292) (#15300) As described in #14843, (some) tests which consumed `runtime_package_dependencies` would always miss the cache. This was because the dists generated for each run were slightly different, which came down to the `package_data` generated for `resources` being in a non-deterministic order due to iterating over a `set`. See #14195 (comment) for some thoughts on how to avoid this kind of issue in the future. Fixes #14843: warm CI times should drop by about 1 minute from ~3m to ~2m. [ci skip-rust]
I haven't investigated deeply yet, but it looks like
pants.core.goals.test.build_runtime_package_dependencies
might not be deterministic.While inspecting traces of Pants' own CI, I noticed that
![pep561-integration](https://user-images.githubusercontent.com/46740/158910184-c00c77e2-08cf-4db0-aac1-0abba5653276.png)
pep561_integration_test.py
and its inputs tend to (always?) miss the remote cache, and are the long pole in CI:It's not clear how the non-determinism gets kicked off, but it's unlikely to be a process (at least initially), because hitting the cache for a non-deterministic process is still deterministic. So most likely either a
@rule
or uncacheable process.The text was updated successfully, but these errors were encountered: