Skip to content
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

Playground nightly toolchain times out trying to build anything. #59061

Closed
moxian opened this issue Mar 10, 2019 · 2 comments
Closed

Playground nightly toolchain times out trying to build anything. #59061

moxian opened this issue Mar 10, 2019 · 2 comments

Comments

@moxian
Copy link
Contributor

moxian commented Mar 10, 2019

When trying to run any code in playground with nightly toolchain (example), the compiler is (seemingly?) trying to compile all the crates, and times out doing so.

Sample stderr output:

   Compiling rand_os v0.1.2
   Compiling iovec v0.1.2
   Compiling net2 v0.2.33
   Compiling num_cpus v1.10.0
   Compiling memchr v2.2.0
   Compiling time v0.1.42
   Compiling xattr v0.2.2
   Compiling filetime v0.2.4
   Compiling atty v0.2.11
   Compiling rand v0.4.6
   Compiling thread-id v3.3.0
   Compiling MacTypes-sys v2.1.0
   Compiling termion v1.5.1
   Compiling memmap v0.7.0
   Compiling crossbeam-epoch v0.7.1
   Compiling crossbeam-epoch v0.3.1
   Compiling deflate v0.7.19
   Compiling base64 v0.10.1
/root/entrypoint.sh: line 8:     7 Killed                  timeout --signal=KILL ${timeout} "$@"

cc @shepmaster

@shepmaster
Copy link
Member

Progress being tracked in rust-lang/rust-playground#469

bors added a commit to rust-lang/cargo that referenced this issue Mar 11, 2019
Fingerprint build script deps only for path packages.

#6720 introduced some protection that if there is a build script, and two commands are used (such as `cargo build` then `cargo test`), the second command would correctly get rebuilt. However, the way it was implemented relies on mtimes working correctly. A common use case is to cache built dependencies in Docker, and Docker zeros the nanoseconds from mtime when the image is saved. This caused all packages that had build scripts to get rebuilt when the Docker image runs.

The solution here is to only use the #6720 protection for local (path) packages. This runs under the assumption that mtimes need to work for those anyways.

The consequence is that the scenario in #6720 will no longer work for detecting changes in registry dependencies with build scripts. Fixing that final edge case is nontrivial. Since it is unlikely to happen often, I figure this workaround should be sufficient for now.

cc rust-lang/rust-playground#469
cc rust-lang/rust#59061
@moxian
Copy link
Contributor Author

moxian commented Mar 15, 2019

Playground is working again now.
Thanks!

@moxian moxian closed this as completed Mar 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants