rust-lang / rust-lang/rustup

running cargo in a custom toolchain is racy

Open
#2,247 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-concurrency bug
Dominant language
Rust
Stars
7k
Forks
1.1k
Avg merge
22h 40m
Merged PRs (30d)
46

Description

This is probably best tackled after #988 is fixed. Running cargo in a custom toolchain unlinks and copies in a copy of cargo into a common well known fallback dir. This can race if run concurrently, leading to spurious errors.

There are a couple possible errors: failure to unlink due to cargo still running; failure to execute due to cargo unlinked by another process.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing issue #988, which the issue identifies as a prerequisite, then investigate concurrent custom-toolchain cargo runs and the shared fallback directory behavior described here. Done means concurrent runs no longer produce unlink or execution errors caused by the shared cargo copy.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.