Warnings being printed after input control is returned to `cmd.exe`
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 1.1k
- Avg merge
- 22h 40m
- Merged PRs (30d)
- 46
Description
Although this bug has been spotted on outdated versions and a platform that is no longer supported, I still decided to write about it, because it may well still exist and indicate certain problems with the async code. Someone else needs to check it, since I don't have the opportunity to do it yet.
Problem
Assume having a Rust environment with tool management conflict(s) between Cargo and Rustup, which results in the well-known warning: tool is already installed. So, when a version specified in ${RUSTUP_UPDATE_ROOT}/rustup/release-stable.toml is distinct and I run rustup self update, then after downloading and installing it these warnings will be output literally into the command prompt. Moreover, this also sometimes happens not immediately, but literally a few seconds later. To me, this pretty suggests some kind of multithreading issue.
And once I noticed the same bug on another command: rustup toolchain install 1.77-gnu 1.77-i686 1.77-i686-gnu:
Configuration
Rustup versions tested: 1.27.1, 1.27.1+381 (03b7c56bf 2024-07-30)
Operating system: Windows 7 Ultimate (Service Pack 1) x64
Additional notes
- Setting the environment variable
RUSTUP_IO_THREADS=1doesn't affect the observed behavior. - I tested version 1.27.1+381 because 03b7c56bf0b4228977257810218b963b7246cf62 is the last revision that can be built with Rust 1.77.2 and run on Windows 7 - I deliberately ran
git bisectto find this out. It's worth noting that the bug is also present there, but in addition the text can no longer be colored incmd.exestarting with commit 509714deb4b8bc5be7e38e2f3779ed4e2b704177, which is shown on the first screenshot as well.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the delayed warnings with rustup self update and rustup toolchain install 1.77-gnu 1.77-i686 1.77-i686-gnu on the Windows configuration described. Compare behavior with RUSTUP_IO_THREADS=1 and trace the asynchronous output paths; done means identifying the cause and preventing warnings from appearing after control returns to cmd.exe.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100