[INFO] fetching crate udo 0.3.1... [INFO] testing udo-0.3.1 against beta-2025-10-28 for beta-1.92-2 [INFO] extracting crate udo 0.3.1 into /workspace/builds/worker-5-tc2/source [INFO] started tweaking crates.io crate udo 0.3.1 [INFO] finished tweaking crates.io crate udo 0.3.1 [INFO] tweaked toml for crates.io crate udo 0.3.1 written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate udo 0.3.1 on toolchain beta-2025-10-28 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate udo 0.3.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 31b600e0c070913e5859200fd1405b789851de214df0e2cae80873eeee3f51f2 [INFO] running `Command { std: "docker" "start" "-a" "31b600e0c070913e5859200fd1405b789851de214df0e2cae80873eeee3f51f2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "31b600e0c070913e5859200fd1405b789851de214df0e2cae80873eeee3f51f2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "31b600e0c070913e5859200fd1405b789851de214df0e2cae80873eeee3f51f2", kill_on_drop: false }` [INFO] [stdout] 31b600e0c070913e5859200fd1405b789851de214df0e2cae80873eeee3f51f2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 870c9b9033ca5697bfd4b86ca33edc7014944e435354322f59c7731b0aeab18d [INFO] running `Command { std: "docker" "start" "-a" "870c9b9033ca5697bfd4b86ca33edc7014944e435354322f59c7731b0aeab18d", kill_on_drop: false }` [INFO] [stderr] Compiling convert_case v0.7.1 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling pam-sys v0.5.6 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling winnow v0.7.13 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling serde_spanned v1.0.3 [INFO] [stderr] Compiling clap_builder v4.5.50 [INFO] [stderr] Compiling toml_datetime v0.7.3 [INFO] [stderr] Compiling toml_writer v1.0.4 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Compiling signal-hook-mio v0.2.4 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling toml_parser v1.0.4 [INFO] [stderr] Compiling toml v0.9.8 [INFO] [stderr] Compiling clap v4.5.50 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling derive_more v2.0.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling udo v0.3.1 (/opt/rustwide/workdir) [INFO] [stdout] error[E0412]: cannot find type `Gid` in this scope [INFO] [stdout] --> src/authenticate.rs:234:55 [INFO] [stdout] | [INFO] [stdout] 234 | fn get_supplemental_groups(user: &User) -> Result> { [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use nix::unistd::Gid; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::process::Command` [INFO] [stdout] --> src/authenticate.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::process::Command; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fs` [INFO] [stdout] --> src/backend/system.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{env, ffi::CString, fs}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fs` [INFO] [stdout] --> src/backend/testing.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, fs}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ffi::CString` [INFO] [stdout] --> src/run/process.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{ffi::CString, process::exit}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `execvp` [INFO] [stdout] --> src/run/process.rs:9:31 [INFO] [stdout] | [INFO] [stdout] 9 | unistd::{ForkResult, Pid, execvp, fork}, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0631]: type mismatch in function arguments [INFO] [stdout] --> src/authenticate.rs:237:36 [INFO] [stdout] | [INFO] [stdout] 237 | Ok(getgroups().iter().flat_map(Group::from_gid).flatten()) [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | expected due to this [INFO] [stdout] | | found signature defined here [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = note: expected function signature `fn(&Vec) -> _` [INFO] [stdout] found function signature `fn(Gid) -> _` [INFO] [stdout] note: required by a bound in `flat_map` [INFO] [stdout] --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/iter/traits/iterator.rs:1473:5 [INFO] [stdout] help: consider wrapping the function in a closure [INFO] [stdout] | [INFO] [stdout] 237 | Ok(getgroups().iter().flat_map(|arg0: &Vec| Group::from_gid(/* Gid */)).flatten()) [INFO] [stdout] | +++++++++++++++++ +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `flatten` exists for struct `FlatMap>, _, fn(Gid) -> ... {...::from_gid}>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/authenticate.rs:237:53 [INFO] [stdout] | [INFO] [stdout] 237 | Ok(getgroups().iter().flat_map(Group::from_gid).flatten()) [INFO] [stdout] | ^^^^^^^ method cannot be called due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] ` std::result::Result, Errno> {Group::from_gid} as FnOnce<(&Vec,)>>::Output = _` [INFO] [stdout] which is required by `FlatMap>, _, fn(Gid) -> std::result::Result, Errno> {Group::from_gid}>: Iterator` [INFO] [stdout] `fn(Gid) -> std::result::Result, Errno> {Group::from_gid}: FnMut<(&Vec,)>` [INFO] [stdout] which is required by `FlatMap>, _, fn(Gid) -> std::result::Result, Errno> {Group::from_gid}>: Iterator` [INFO] [stdout] `FlatMap>, _, fn(Gid) -> std::result::Result, Errno> {Group::from_gid}>: Iterator` [INFO] [stdout] which is required by `&mut FlatMap>, _, fn(Gid) -> std::result::Result, Errno> {Group::from_gid}>: Iterator` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/udo-804052765752747e.long-type-6013158460943637424.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/authenticate/pam.rs:129:23 [INFO] [stdout] | [INFO] [stdout] 129 | .map_err(|e| AuthError::new(AuthErrorKind::InvalidInput, "invalid service"))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/authenticate/pam.rs:127:23 [INFO] [stdout] | [INFO] [stdout] 127 | .map_err(|e| AuthError::new(AuthErrorKind::InvalidInput, "invalid password"))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/authenticate/pam.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | .map_err(|e| AuthError::new(AuthErrorKind::InvalidInput, "invalid username"))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/authenticate.rs:68:21 [INFO] [stdout] | [INFO] [stdout] 68 | let v = v.clone(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/authenticate.rs:69:61 [INFO] [stdout] | [INFO] [stdout] 69 | matches!(&other.command, ActionValue::Value(v)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `h` [INFO] [stdout] --> src/authenticate.rs:85:17 [INFO] [stdout] | [INFO] [stdout] 85 | let h = other.host.as_ref().unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_h` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `h` [INFO] [stdout] --> src/authenticate.rs:90:22 [INFO] [stdout] | [INFO] [stdout] 90 | Some(h) => true, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_h` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/authenticate.rs:99:21 [INFO] [stdout] | [INFO] [stdout] 99 | let v = v.clone(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/authenticate.rs:100:59 [INFO] [stdout] | [INFO] [stdout] 100 | matches!(&other.do_as, ActionValue::Value(v)) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/authenticate.rs:159:41 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn authenticate_password(run: &Run, config: &Config, password: String) -> AuthResult { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/backend/system.rs:30:30 [INFO] [stdout] | [INFO] [stdout] 30 | setuid(uid).map_err(|e| Error::new(ErrorKind::UidSet, "Failed to set uid")) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/backend/system.rs:38:31 [INFO] [stdout] | [INFO] [stdout] 38 | seteuid(uid).map_err(|e| Error::new(ErrorKind::EuidSet, "Failed to set euid")) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/backend/system.rs:46:30 [INFO] [stdout] | [INFO] [stdout] 46 | setgid(gid).map_err(|e| Error::new(ErrorKind::GidSet, "Failed to set gid")) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/backend/system.rs:80:33 [INFO] [stdout] | [INFO] [stdout] 80 | env::var(name).map_err(|e| Error::new(ErrorKind::Env, "Failed to get environment variable")) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process` [INFO] [stdout] --> src/backend/testing.rs:123:26 [INFO] [stdout] | [INFO] [stdout] 123 | fn execvp(&mut self, process: &str, args: &[&str]) -> Result<()> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/backend/testing.rs:123:41 [INFO] [stdout] | [INFO] [stdout] 123 | fn execvp(&mut self, process: &str, args: &[&str]) -> Result<()> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/output.rs:149:39 [INFO] [stdout] | [INFO] [stdout] 149 | pub fn not_authenticated(user: &User, config: &Config) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `status` [INFO] [stdout] --> src/run/process.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | Ok(status) => exit(1), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rest` [INFO] [stdout] --> src/run.rs:279:13 [INFO] [stdout] | [INFO] [stdout] 279 | let rest = actions [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `root` [INFO] [stdout] --> src/run.rs:345:9 [INFO] [stdout] | [INFO] [stdout] 345 | root: Vec, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_root` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0412, E0599, E0631. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0412`. [INFO] [stdout] [INFO] [stderr] error: could not compile `udo` (bin "udo") due to 3 previous errors; 25 warnings emitted [INFO] running `Command { std: "docker" "inspect" "870c9b9033ca5697bfd4b86ca33edc7014944e435354322f59c7731b0aeab18d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "870c9b9033ca5697bfd4b86ca33edc7014944e435354322f59c7731b0aeab18d", kill_on_drop: false }` [INFO] [stdout] 870c9b9033ca5697bfd4b86ca33edc7014944e435354322f59c7731b0aeab18d