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

1.67 release broken on illumos when stdout is not a tty #11629

Closed
davepacheco opened this issue Jan 26, 2023 · 7 comments
Closed

1.67 release broken on illumos when stdout is not a tty #11629

davepacheco opened this issue Jan 26, 2023 · 7 comments
Labels
C-bug Category: bug regression-from-stable-to-stable Regression in stable that worked in a previous stable release. S-blocked-external Status: ❌ blocked on something out of the direct control of the Cargo project, e.g., upstream fix

Comments

@davepacheco
Copy link
Contributor

davepacheco commented Jan 26, 2023

Problem

After installing toolchain 1.67 on illumos, all cargo invocations with stdout not being a tty fail with:

$ cargo version > /dev/null
thread 'main' panicked at 'unexpected error from isatty: 0', /cargo/registry/src/git.luolix.top-1ecc6299db9ec823/rustix-0.36.3/src/backend/libc/termios/syscalls.rs:141:20
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

It's fine if stdout is a tty:

$ cargo version
cargo 1.67.0 (8ecd4f20a 2023-01-10)

This is unfortunately a showstopper for us because stdout is not a tty in CI, so we can't use this toolchain in CI.

Steps

On an illumos system:

  1. rustup toolchain update stable
  2. cargo version (to make sure you got 1.67)
  3. cargo version > /dev/null (should reproduce the problem)

Possible Solution(s)

We believe this is bytecodealliance/rustix#467, which was introduced to Cargo by 48895b1. This has been fixed upstream.

Notes

No response

Version

$ cargo version --verbose
cargo 1.67.0 (8ecd4f20a 2023-01-10)
release: 1.67.0
commit-hash: 8ecd4f20a9efb626975ac18a016d480dc7183d9b
commit-date: 2023-01-10
host: x86_64-unknown-illumos
libgit2: 1.5.0 (sys:0.16.0 vendored)
libcurl: 7.86.0-DEV (sys:0.4.59+curl-7.86.0 vendored ssl:OpenSSL/1.1.1q)
os: illumos helios-1.0.21408 [64-bit]

(thanks @jgallagher for having found this before, fixed it upstream, and identified it here)

@davepacheco davepacheco added the C-bug Category: bug label Jan 26, 2023
@weihanglo weihanglo added S-blocked-external Status: ❌ blocked on something out of the direct control of the Cargo project, e.g., upstream fix regression-from-stable-to-stable Regression in stable that worked in a previous stable release. labels Jan 26, 2023
@weihanglo
Copy link
Member

Sorry for this bug affecting you. We could had included this fix rust-lang/rust#105511 but unfortunately it got merged after 1.67 branched from master to beta. And the Cargo team wasn't aware of this situation 😞.

I don't really know about illumos, so don't know how to help. As always, if permitted, I would recommend every project runs tests on beta channel in CI pipelines.

@Brooooooklyn
Copy link
Contributor

@weihanglo
Copy link
Member

@Brooooooklyn Sorry for that. Could you provide more context? I don't really know how to interpret the job failure log.

@weihanglo weihanglo added the I-nominated-to-discuss To be discussed during issue triage on the next Cargo team meeting label Jan 31, 2023
@jgallagher
Copy link

The build step from the job failure shows the same panic message as above (although with a different errno):

Type Error: Could not parse the Cargo.toml: Error: Command failed: cargo metadata --format-version 1 --manifest-path "/Users/runner/work/Image/Image/packages/binding/Cargo.toml"
thread 'main' panicked at 'unexpected error from isatty: 45', /cargo/registry/src/git.luolix.top-1ecc6299db9ec823/rustix-0.36.3/src/backend/libc/termios/syscalls.rs:141:20
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'main' panicked at 'unexpected error from isatty: 45', /cargo/registry/src/git.luolix.top-1ecc6299db9ec823/rustix-0.36.3/src/backend/libc/termios/syscalls.rs:141:20
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

@weihanglo
Copy link
Member

BTW, could anyone check if the bug is fixed under the current beta?
(probably cargo 1.68.0-beta.2 (0762e3bbd 2023-01-30))

@jgallagher
Copy link

It is fixed in the current beta (and was also fixed in the initial beta). On an illumos system:

john@helios1:~$ cargo -V
cargo 1.67.0 (8ecd4f20a 2023-01-10)
john@helios1:~$ cargo -V >/dev/null
thread 'main' panicked at 'unexpected error from isatty: 0', /cargo/registry/src/git.luolix.top-1ecc6299db9ec823/rustix-0.36.3/src/backend/libc/termios/syscalls.rs:141:20
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
john@helios1:~$ cargo +beta -V
cargo 1.68.0-beta.2 (0762e3bbd 2023-01-30)
john@helios1:~$ cargo +beta -V >/dev/null
john@helios1:~$

@weihanglo weihanglo removed the I-nominated-to-discuss To be discussed during issue triage on the next Cargo team meeting label Feb 14, 2023
@weihanglo
Copy link
Member

Thank you for testing the fix on beta! I am going to close this, and sorry for the inconvenience.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: bug regression-from-stable-to-stable Regression in stable that worked in a previous stable release. S-blocked-external Status: ❌ blocked on something out of the direct control of the Cargo project, e.g., upstream fix
Projects
None yet
Development

No branches or pull requests

4 participants