rust icon indicating copy to clipboard operation
rust copied to clipboard

Print a backtrace in const eval if interrupted

Open saethlin opened this issue 1 year ago • 80 comments

Demo:

#![feature(const_eval_limit)]
#![const_eval_limit = "0"]

const OW: u64 = {
    let mut res: u64 = 0;
    let mut i = 0;
    while i < u64::MAX {
        res = res.wrapping_add(i);
        i += 1;
    }
    res
};

fn main() {
    println!("{}", OW);
}
╭ ➜ ben@archlinux:~/rust
╰ ➤ rustc +stage1 spin.rs 
^Cerror[E0080]: evaluation of constant value failed
 --> spin.rs:8:33
  |
8 |         res = res.wrapping_add(i);
  |                                 ^ Compilation was interrupted

note: erroneous constant used
  --> spin.rs:15:20
   |
15 |     println!("{}", OW);
   |                    ^^

note: erroneous constant used
  --> spin.rs:15:20
   |
15 |     println!("{}", OW);
   |                    ^^
   |
   = note: this note originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

For more information about this error, try `rustc --explain E0080`.

saethlin avatar May 19 '23 20:05 saethlin

r? @Mark-Simulacrum

(rustbot has picked a reviewer for you, use r? to override)

rustbot avatar May 19 '23 20:05 rustbot

The job mingw-check-tidy failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v3' (SHA:8e5e7e5ab8b370d6c329ec480221332ada57f0ab)
Download action repository 'rust-lang/simpleinfra@master' (SHA:af9a3f1b7e12a54c737d8aa371acc8d05cb83a8f)
Complete job name: PR - mingw-check-tidy
git config --global core.autocrlf false
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  CI_JOB_NAME: mingw-check-tidy
---
Building wheels for collected packages: reuse
  Building wheel for reuse (pyproject.toml): started
  Building wheel for reuse (pyproject.toml): finished with status 'done'
  Created wheel for reuse: filename=reuse-1.1.0-cp310-cp310-manylinux_2_35_x86_64.whl size=180115 sha256=c3e1cf75e5aea7348ad201d16633573bc9f3aa58c8e29a6ca459f306300d6c9d
  Stored in directory: /tmp/pip-ephem-wheel-cache-fo0eo9hg/wheels/c2/3c/b9/1120c2ab4bd82694f7e6f0537dc5b9a085c13e2c69a8d0c76d
Installing collected packages: boolean-py, binaryornot, setuptools, reuse, python-debian, markupsafe, license-expression, jinja2, chardet
  Attempting uninstall: setuptools
    Found existing installation: setuptools 59.6.0
    Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr
---
Successfully tagged rust-ci:latest
Built container sha256:ebaa728800b470c128c7a15ccd8a3f954b750afcffaa989e804b3f57970aed67
Uploading finished image to https://ci-caches.rust-lang.org/docker/e51156f19850ce886cec818e46dc2a021e0aa7c270d15673e8fe74cd8522fc8ac3995109aebb688ee49ed586735ed4cf5f8c06d44c48298fa09c35ae4b082281

<botocore.awsrequest.AWSRequest object at 0x7fd433cab910>
gzip: stdout: Broken pipe
xargs: docker: terminated by signal 13
[CI_JOB_NAME=mingw-check-tidy]
[CI_JOB_NAME=mingw-check-tidy]
---
##[endgroup]
fmt check
tidy check
tidy: Skipping binary file check, read-only filesystem
tidy error: Dependency for rustc not explicitly permitted: nix 0.26.2 (registry+https://github.com/rust-lang/crates.io-index)
tidy error: Dependency for rustc not explicitly permitted: ctrlc 3.2.5 (registry+https://github.com/rust-lang/crates.io-index)
tidy error: Dependency for rustc not explicitly permitted: windows-sys 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)
some tidy checks failed

rust-log-analyzer avatar May 19 '23 20:05 rust-log-analyzer

Yea, this is exactly what I wanted. Do any of the new deps have problematic licenses? Otherwise seems fine to just add them to the list of allowed crates.

oli-obk avatar May 22 '23 15:05 oli-obk

ctrlc is MIT or Apache-2.0, nix is MIT. I'll try to spruce up the implementation then get this reviewed.

Jynn said Mark has previously been uncomfortable with signal handlers or atexit code, so I'd prefer Mark approve this before it goes in (got lucky with the random selection I suppose).

saethlin avatar May 22 '23 16:05 saethlin

Some changes occurred to the CTFE / Miri engine

cc @rust-lang/miri

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged. Otherwise, you can ignore this comment.

rustbot avatar May 22 '23 20:05 rustbot

Just so everyone follows along, we recently added a mechanism like this to Miri: https://github.com/rust-lang/miri/pull/2899

Since we ctrlc::set_hook inside rustc_driver::main, Miri should probably keep installing its own hook, but it might be nice to use the static inside rustc_*. cc @RalfJung (ah duh the bot has pinged you already, well now you know I really care about you knowing :p )

saethlin avatar May 22 '23 20:05 saethlin

Miri should probably keep installing its own hook, but it might be nice to use the static inside rustc_*.

You could do this change in this PR, subtrees ftw

oli-obk avatar May 23 '23 07:05 oli-obk

You could do this change in this PR, subtrees ftw

We should first push Miri changes to rustc though or else we'll get conflicts.

RalfJung avatar May 23 '23 10:05 RalfJung

:umbrella: The latest upstream changes (presumably #111867) made this pull request unmergeable. Please resolve the merge conflicts.

bors avatar May 24 '23 00:05 bors

The Miri subtree was changed

cc @rust-lang/miri

rustbot avatar May 24 '23 03:05 rustbot

r=me on the interpreter changes. Do we still need to get some approval for the new rustc dependencies?

RalfJung avatar May 25 '23 07:05 RalfJung

:umbrella: The latest upstream changes (presumably #111933) made this pull request unmergeable. Please resolve the merge conflicts.

bors avatar May 25 '23 09:05 bors

I'm happy to wait for @Mark-Simulacrum to swing by again and offer an opinion :)

saethlin avatar May 25 '23 23:05 saethlin

@bors r=RalfJung

Mark-Simulacrum avatar May 29 '23 14:05 Mark-Simulacrum

:pushpin: Commit 38a5fee3a0e31f9f9c072d8d9af1321e0bf6752a has been approved by RalfJung

It is now in the queue for this repository.

bors avatar May 29 '23 14:05 bors

:hourglass: Testing commit 38a5fee3a0e31f9f9c072d8d9af1321e0bf6752a with merge 77596bfc2809cb9f84342f640a62526acfa0c5d6...

bors avatar Jun 01 '23 14:06 bors

The job dist-x86_64-linux failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[RUSTC-TIMING] rustc_mir_transform test:false 42.224
[RUSTC-TIMING] rustc_borrowck test:false 51.505
   Compiling rustc_driver v0.0.0 (/checkout/compiler/rustc_driver)
[RUSTC-TIMING] rustc_driver test:false 0.872
error: linking with `clang` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/bin:/rustroot/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "clang" "-m64" "/tmp/rustciHaupB/symbols.o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_main-d5f87974ca3cd937.rustc_main.c3a635eba3fdf826-cgu.0.rcgu.o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_main-d5f87974ca3cd937.rustc_main.c3a635eba3fdf826-cgu.1.rcgu.o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_main-d5f87974ca3cd937.rustc_main.c3a635eba3fdf826-cgu.2.rcgu.o" "-Wl,--as-needed" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/release/deps" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/jemalloc-sys-64d0215787acb5c1/out/build/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/psm-2ed13b543d94c004/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/rustc_llvm-64b9b382d5308946/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/lib" "-L" "/rustroot/bin/../lib/gcc/x86_64-pc-linux-gnu/8.5.0/../../../../lib64" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps" "-Wl,-Bdynamic" "-lrustc_driver-f83b9c887762aae7" "-Wl,-Bstatic" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/libjemalloc_sys-79feb285234815a5.rlib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bdynamic" "-lstd-106733ad81280011" "-Wl,-Bstatic" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-2e806d9f1e9cb529.rlib" "-Wl,-Bdynamic" "-lLLVM-16-rust-1.72.0-nightly" "-ldl" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_main-d5f87974ca3cd937" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-Wl,-z,origin" "-Wl,-rpath,$ORIGIN/../lib" "-fuse-ld=lld" "-Wl,--icf=all"
  = note: ld.lld: error: undefined reference due to --no-allow-shlib-undefined: memfd_create
          >>> referenced by /checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-f83b9c887762aae7.so
          clang-16: error: linker command failed with exit code 1 (use -v to see invocation)

[RUSTC-TIMING] rustc_main test:false 0.113
error: could not compile `rustc-main` (bin "rustc-main") due to previous error
Build completed unsuccessfully in 0:09:36
---
Total duration:                           9m 36s
------------------------------------------------
root INFO: Free disk space: 511.18 GiB out of total 581.32 GiB (12.06% used)
Traceback (most recent call last):
  File "../src/ci/stage-build.py", line 870, in <module>
    run(runner)
  File "../src/ci/stage-build.py", line 861, in run
    raise e
  File "../src/ci/stage-build.py", line 858, in run
    execute_build_pipeline(timer, pipeline, runner, build_args)
  File "../src/ci/stage-build.py", line 781, in execute_build_pipeline
    LLVM_PROFILE_DIR=str(pipeline.llvm_profile_dir_root() / "prof-%p")
  File "../src/ci/stage-build.py", line 608, in build_rustc
    cmd(arguments, env=env)
  File "../src/ci/stage-build.py", line 451, in cmd
    return subprocess.run(args, env=environment, check=True)
  File "/usr/lib64/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/usr/bin/python3', '/checkout/x.py', 'build', '--target', 'x86_64-unknown-linux-gnu', '--host', 'x86_64-unknown-linux-gnu', '--stage', '2', 'library/std', '--llvm-profile-generate']' returned non-zero exit status 1.

rust-log-analyzer avatar Jun 01 '23 14:06 rust-log-analyzer

:broken_heart: Test failed - checks-actions

bors avatar Jun 01 '23 14:06 bors

I think I found the problem. There is a function in nix which calls memfd_create, which is a glibc function that was introduced after the glibc version that we use in dist builds.

Now, this PR doesn't actually use that function, but since we now depend on nix in rustc_driver which is a shared objects, we compile the function that contains a call to memfd_create, add it to the shared object, don't realize it is dead, do the final link which forbids unresolved symbols, and the link fails.

Why the function in question is not proven to be dead and removed I have no idea, but I'm going to try merging patches upstream that add #[inline] to it.

saethlin avatar Jun 02 '23 21:06 saethlin

The job mingw-check-tidy failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v3' (SHA:8e5e7e5ab8b370d6c329ec480221332ada57f0ab)
Download action repository 'rust-lang/simpleinfra@master' (SHA:cdb59432ef9e018dd6db5879e720eccc3289da68)
Complete job name: PR - mingw-check-tidy
git config --global core.autocrlf false
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  CI_JOB_NAME: mingw-check-tidy
---
Building wheels for collected packages: reuse
  Building wheel for reuse (pyproject.toml): started
  Building wheel for reuse (pyproject.toml): finished with status 'done'
  Created wheel for reuse: filename=reuse-1.1.0-cp310-cp310-manylinux_2_35_x86_64.whl size=180116 sha256=351235b2326fb4db7a18e257e13ce7896c5f77339521e2c2612e71e154800a19
  Stored in directory: /tmp/pip-ephem-wheel-cache-6civ29m_/wheels/c2/3c/b9/1120c2ab4bd82694f7e6f0537dc5b9a085c13e2c69a8d0c76d
Installing collected packages: boolean-py, binaryornot, setuptools, reuse, python-debian, markupsafe, license-expression, jinja2, chardet
  Attempting uninstall: setuptools
    Found existing installation: setuptools 59.6.0
    Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr
---
Successfully tagged rust-ci:latest
Built container sha256:c1abd02791bc61a950ea262e7543fe0620d9550ea6d6b2f2fe024aa5b714e80a
Uploading finished image to https://ci-caches.rust-lang.org/docker/e51156f19850ce886cec818e46dc2a021e0aa7c270d15673e8fe74cd8522fc8ac3995109aebb688ee49ed586735ed4cf5f8c06d44c48298fa09c35ae4b082281

<botocore.awsrequest.AWSRequest object at 0x7fe55ddffe90>
gzip: stdout: Broken pipe
xargs: docker: terminated by signal 13
[CI_JOB_NAME=mingw-check-tidy]
[CI_JOB_NAME=mingw-check-tidy]
---
extracting /checkout/obj/build/cache/llvm-794249d768a4f112519f22502ade032dc03b9fde-true/rust-dev-nightly-x86_64-unknown-linux-gnu.tar.xz to /checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm
##[group]Building stage0 tool tidy (x86_64-unknown-linux-gnu)
Building stage0 tool tidy (x86_64-unknown-linux-gnu)
    Updating crates.io index
    Updating git repository `https://github.com/saethlin/rust-ctrlc`
    Updating git repository `https://github.com/saethlin/nix`
---
    Finished release [optimized] target(s) in 15.11s
##[endgroup]
fmt check
tidy check
tidy error: invalid source: "git+https://github.com/saethlin/rust-ctrlc#b633d52737c9123b664c3b4a27956637096e2948"
tidy error: invalid source: "git+https://github.com/saethlin/nix?branch=memfd_create#49958ee28a80aad33a9c41d54a6cdb87fda8b87d"
some tidy checks failed
Build completed unsuccessfully in 0:00:32

rust-log-analyzer avatar Jun 02 '23 21:06 rust-log-analyzer

It seems rather fragile to rely on optimizations to have this symbol removed from the crate. The better approach seems to be a feature flag for nix that makes it compatible with older distros.

RalfJung avatar Jun 03 '23 08:06 RalfJung

It looks like there is a fallback case using a raw syscall for targets where libc doesn't export memfd_create.

bjorn3 avatar Jun 03 '23 11:06 bjorn3

It seems rather fragile to rely on optimizations to have this symbol removed from the crate.

I do agree that relying on an optimization is generally not good. But...

It is a linker optimization that makes this crate work at all when building binaries for old glibc versions. I strongly suspect that such optimizations are very widely relied upon. I'm not particularly worried about relying on linkers to remove unused symbols.

I'm also not trying to rely on an inlining optimization here, but a change to how codegen is done. The Rust function memfd_create in nix isn't generic or #[inline] so it's put into the shared object for rustc_driver and is externally visible. Whether fixing this with #[inline] is better or worse than an optimization (because I'm trying to rely on the rustc implementation of that attribute) is better or worse I don't know.

The better approach seems to be a feature flag for nix that makes it compatible with older distros.

I don't know how to architect this feature well. This code is already under the feature fs so the only change I can think of that isn't breaking is to migrate most of fs into a sub-feature that is required by fs, so that the existing feature is not changed but users on an old distro can use a different feature instead.

I also have no idea how to test that this maneuver actually works. The nix wrapper for renameat2 technically doesn't work on old glibc either, but I think compiling it doesn't result in a linker error because the nix wrapper is generic.

It looks like there is a fallback case using a raw syscall for targets where libc doesn't export memfd_create.

Yeah, but I don't know how to do make that also understand various glibc versions. Are you suggesting we memfd_create should be implemented with a raw syscall on glibc targets?

saethlin avatar Jun 03 '23 15:06 saethlin

Are you suggesting we memfd_create should be implemented with a raw syscall on glibc targets?

Yeah. I don't know of any disadvantages other than it being harder (but not by a whole lote) to replace with LD_PRELOAD.

bjorn3 avatar Jun 03 '23 15:06 bjorn3

:umbrella: The latest upstream changes (presumably #113046) made this pull request unmergeable. Please resolve the merge conflicts.

bors avatar Jul 03 '23 00:07 bors

There was some confusion with regards to why --no-allow-shlib-undefined is passed at all. From a bit of experimentation it looks like both binutils ld and ld.lld do this by default. If you have a dylib crate with an undefined symbol in unused public code and then a binary crate that depends on that dylib, it fails to link the binary crate because of the symbol in the dylib. --allow-shlib-undefined is needed to allow it to compile (which we probably don't want to pass).

quick repro

crate hmm

extern "C" {
  fn meooow();
}

pub fn instance() {
  unsafe { meooow() }
}

pub fn callme() {}

crate hmm, Cargo.toml, snip

[lib]
crate-type = ["dylib"]

binary crate, depending on the hmm crate

fn main() {
    hmm::callme();
}

Noratrieb avatar Aug 08 '23 12:08 Noratrieb

The job mingw-check-tidy failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v3' (SHA:c85c95e3d7251135ab7dc9ce3241c5835cc595a9)
Download action repository 'actions/upload-artifact@v3' (SHA:0b7f8abb1508181956e8e162db84b466c27e18ce)
Complete job name: PR - mingw-check-tidy
git config --global core.autocrlf false
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
---
GITHUB_ACTION=__run_7
GITHUB_ACTIONS=true
GITHUB_ACTION_REF=
GITHUB_ACTION_REPOSITORY=
GITHUB_ACTOR=saethlin
GITHUB_API_URL=https://api.github.com
GITHUB_BASE_REF=master
GITHUB_ENV=/home/runner/work/_temp/_runner_file_commands/set_env_d9045680-4d46-4911-8db6-426ade7245dc
GITHUB_EVENT_NAME=pull_request
GITHUB_EVENT_NAME=pull_request
GITHUB_EVENT_PATH=/home/runner/work/_temp/_github_workflow/event.json
GITHUB_GRAPHQL_URL=https://api.github.com/graphql
GITHUB_HEAD_REF=ctfe-backtrace-ctrlc
GITHUB_JOB=pr
GITHUB_PATH=/home/runner/work/_temp/_runner_file_commands/add_path_d9045680-4d46-4911-8db6-426ade7245dc
GITHUB_REF=refs/pull/111769/merge
GITHUB_REF_NAME=111769/merge
GITHUB_REF_PROTECTED=false
---
GITHUB_SERVER_URL=https://github.com
GITHUB_SHA=ccd88463d65e0801a17dcde653dea52a112957ef
GITHUB_STATE=/home/runner/work/_temp/_runner_file_commands/save_state_d9045680-4d46-4911-8db6-426ade7245dc
GITHUB_STEP_SUMMARY=/home/runner/work/_temp/_runner_file_commands/step_summary_d9045680-4d46-4911-8db6-426ade7245dc
GITHUB_TRIGGERING_ACTOR=saethlin
GITHUB_WORKFLOW_REF=rust-lang/rust/.github/workflows/ci.yml@refs/pull/111769/merge
GITHUB_WORKFLOW_SHA=ccd88463d65e0801a17dcde653dea52a112957ef
GITHUB_WORKSPACE=/home/runner/work/rust/rust
GOROOT_1_18_X64=/opt/hostedtoolcache/go/1.18.10/x64
---

#10 [5/8] COPY host-x86_64/mingw-check/reuse-requirements.txt /tmp/
#10 DONE 0.0s

#11 [6/8] RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt     && pip3 install virtualenv
#11 0.713   Downloading binaryornot-0.4.4-py2.py3-none-any.whl (9.0 kB)
#11 0.729 Collecting boolean-py==4.0
#11 0.737   Downloading boolean.py-4.0-py3-none-any.whl (25 kB)
#11 0.756 Collecting chardet==5.1.0
---
#11 3.961 Building wheels for collected packages: reuse
#11 3.962   Building wheel for reuse (pyproject.toml): started
#11 4.274   Building wheel for reuse (pyproject.toml): finished with status 'done'
#11 4.275   Created wheel for reuse: filename=reuse-1.1.0-cp310-cp310-manylinux_2_35_x86_64.whl size=180116 sha256=351235b2326fb4db7a18e257e13ce7896c5f77339521e2c2612e71e154800a19
#11 4.275   Stored in directory: /tmp/pip-ephem-wheel-cache-ceuw8vlf/wheels/c2/3c/b9/1120c2ab4bd82694f7e6f0537dc5b9a085c13e2c69a8d0c76d
#11 4.277 Installing collected packages: boolean-py, binaryornot, setuptools, reuse, python-debian, markupsafe, license-expression, jinja2, chardet
#11 4.298   Attempting uninstall: setuptools
#11 4.298     Found existing installation: setuptools 59.6.0
#11 4.299     Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr
#11 4.299     Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr
#11 4.299     Can't uninstall 'setuptools'. No files were found to uninstall.
#11 4.962 Successfully installed binaryornot-0.4.4 boolean-py-4.0 chardet-5.1.0 jinja2-3.1.2 license-expression-30.0.0 markupsafe-2.1.1 python-debian-0.1.49 reuse-1.1.0 setuptools-66.0.0
#11 4.963 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#11 5.475 Collecting virtualenv
#11 5.654   Downloading virtualenv-20.24.2-py3-none-any.whl (3.0 MB)
#11 5.818      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 18.5 MB/s eta 0:00:00
#11 5.866 Collecting platformdirs<4,>=3.9.1
#11 5.872   Downloading platformdirs-3.10.0-py3-none-any.whl (17 kB)
#11 5.892 Collecting distlib<1,>=0.3.7
#11 5.898   Downloading distlib-0.3.7-py2.py3-none-any.whl (468 kB)
#11 5.942 Collecting filelock<4,>=3.12.2
#11 5.949   Downloading filelock-3.12.2-py3-none-any.whl (10 kB)
#11 5.949   Downloading filelock-3.12.2-py3-none-any.whl (10 kB)
#11 6.032 Installing collected packages: distlib, platformdirs, filelock, virtualenv
#11 6.187 Successfully installed distlib-0.3.7 filelock-3.12.2 platformdirs-3.10.0 virtualenv-20.24.2
#11 DONE 6.3s

#12 [7/8] COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/
#12 DONE 0.0s
---
##[endgroup]
Built container sha256:d42bf3a6ee8ceb1b18526174388ea4e92d76590e93d7ec6dea3f5ffb30b3c51e
Uploading finished image to https://ci-caches.rust-lang.org/docker/47cc674a88b6927a33a18f169cab0b31beb9e034541bf354ddcd678bb64875557e80c5b2494faa2d9e4c326942ca463c8d35824badb270e67a873d23dfb5f897

<botocore.awsrequest.AWSRequest object at 0x7fe27c799bd0>
gzip: stdout: Broken pipe
xargs: docker: terminated by signal 13
[CI_JOB_NAME=mingw-check-tidy]
[CI_JOB_NAME=mingw-check-tidy]
---
DirectMap4k:      229312 kB
DirectMap2M:     9207808 kB
DirectMap1G:    59768832 kB
##[endgroup]
Executing TIDY_PRINT_DIFF=1 python2.7 ../x.py test            --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint
+ TIDY_PRINT_DIFF=1 python2.7 ../x.py test --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint
    Finished dev [unoptimized] target(s) in 0.03s
##[endgroup]
downloading https://ci-artifacts.rust-lang.org/rustc-builds-alt/08691f0c9269f246deb242bba0f848587fa5622e/rust-dev-nightly-x86_64-unknown-linux-gnu.tar.xz
extracting /checkout/obj/build/cache/llvm-08691f0c9269f246deb242bba0f848587fa5622e-true/rust-dev-nightly-x86_64-unknown-linux-gnu.tar.xz to /checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm
extracting /checkout/obj/build/cache/llvm-08691f0c9269f246deb242bba0f848587fa5622e-true/rust-dev-nightly-x86_64-unknown-linux-gnu.tar.xz to /checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm
##[group]Building stage0 tool tidy (x86_64-unknown-linux-gnu)
    Updating crates.io index
    Updating git repository `https://github.com/saethlin/rust-ctrlc`
    Updating git repository `https://github.com/saethlin/nix`
---
##[endgroup]
fmt check
tidy check
tidy: Skipping binary file check, read-only filesystem
tidy error: invalid source: "git+https://github.com/saethlin/rust-ctrlc#d45d0f8337b454fce93bcd456737c13f43de3bb5"
tidy error: invalid source: "git+https://github.com/saethlin/nix?branch=memfd_create2#ca49cd83b44ed30fb4aa1b68a628cdf3ccc702c8"
removing old virtual environment
creating virtual environment at '/checkout/obj/build/venv' using 'python3.10'
Requirement already satisfied: pip in ./build/venv/lib/python3.10/site-packages (23.2.1)
Collecting black==23.3.0 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 7))
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 14.8 MB/s eta 0:00:00
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 14.8 MB/s eta 0:00:00
Collecting click==8.1.3 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 34))
  Downloading click-8.1.3-py3-none-any.whl (96 kB)
Collecting importlib-metadata==6.7.0 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 38))
  Downloading importlib_metadata-6.7.0-py3-none-any.whl (22 kB)
  Downloading importlib_metadata-6.7.0-py3-none-any.whl (22 kB)
Collecting mypy-extensions==1.0.0 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 42))
  Downloading mypy_extensions-1.0.0-py3-none-any.whl (4.7 kB)
Collecting packaging==23.1 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 46))
  Downloading packaging-23.1-py3-none-any.whl (48 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 48.9/48.9 kB 1.5 MB/s eta 0:00:00
Collecting pathspec==0.11.1 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 50))
  Downloading pathspec-0.11.1-py3-none-any.whl (29 kB)
Collecting platformdirs==3.6.0 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 54))
  Downloading platformdirs-3.6.0-py3-none-any.whl (16 kB)
Collecting ruff==0.0.272 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 58))
  Downloading ruff-0.0.272-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.9/5.9 MB 43.8 MB/s eta 0:00:00
Collecting tomli==2.0.1 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 77))
  Downloading tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting typed-ast==1.5.4 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 81))
  Downloading typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (877 kB)
Collecting typing-extensions==4.6.3 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 107))
  Downloading typing_extensions-4.6.3-py3-none-any.whl (31 kB)
  Downloading typing_extensions-4.6.3-py3-none-any.whl (31 kB)
Collecting zipp==3.15.0 (from -r /checkout/src/tools/tidy/config/requirements.txt (line 114))
  Downloading zipp-3.15.0-py3-none-any.whl (6.8 kB)
Installing collected packages: zipp, typing-extensions, typed-ast, tomli, ruff, platformdirs, pathspec, packaging, mypy-extensions, click, importlib-metadata, black
Successfully installed black-23.3.0 click-8.1.3 importlib-metadata-6.7.0 mypy-extensions-1.0.0 packaging-23.1 pathspec-0.11.1 platformdirs-3.6.0 ruff-0.0.272 tomli-2.0.1 typed-ast-1.5.4 typing-extensions-4.6.3 zipp-3.15.0
some tidy checks failed
Build completed unsuccessfully in 0:00:31
  local time: Fri Aug 11 14:58:07 UTC 2023
  network time: Fri, 11 Aug 2023 14:58:07 GMT

rust-log-analyzer avatar Aug 11 '23 14:08 rust-log-analyzer

Just double-checking that the approach nix prefers actually works @bors try

saethlin avatar Aug 11 '23 16:08 saethlin

:hourglass: Trying commit cc1df4ec5e905d4fd5c3e13c3081435109914125 with merge 04b534494ecd6912739e285404bee5bf4d015731...

bors avatar Aug 11 '23 16:08 bors

:sunny: Try build successful - checks-actions Build commit: 04b534494ecd6912739e285404bee5bf4d015731 (04b534494ecd6912739e285404bee5bf4d015731)

bors avatar Aug 11 '23 18:08 bors