-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
cargo clippy with clippy-preview crash on x86 Linux #3345
Comments
Hmm. I tried checking the bytetools https://github.com/RustCrypto/utils/tree/master/byte-tools crate with clippy on nightly, beta and stable but could not repro any crash. |
I'll test with |
This seems to happen to me with Line-wrapped for clarity:
Is there any additional information that I can provide? |
From what I've seen,
This is all pure speculation and I haven't tested my claim for 32-bit Unixes, so take my words with a grain of salt. EDIT: also SIGSEGV on Linux is likely to be the equivalent of exit code 3221225477 == 0xC0000005 == access violation on Windows. |
Re: "Access Violation": yes, I believe they are the same thing. If
|
I kicked
|
As predicted, I can |
So from this stacktrace (thanks @therealbstern!) this method segfaults: That was the latest commit to this file which precedes the release of |
Thanks for the investigation! |
I managed to set up a 32bit docker container to run Clippy on byte-tools: It's currently set to check RustCrypto/utils@12b85f9#diff-680d0fd529aaf10e64df6cd0feb785ea but doesn't cause a crash. I ran out of time for today and will check the other commits tomorrow. |
I can't reproduce the crash with the docker container. Maybe because my host system is 64 bit? I'm going to try it with a Vagrant VM next. |
I think the answer is yes --- I tried to reproduce with |
I also can't seem to reproduce it with a Vagrant VM. @therealbstern Could you also provide the output of |
cc #2310 |
Line-wrapped for convenience:
|
This does not bode well for MINIX support |
Sorry for lengthy comment but I'd appreciate if somebody could verify my uneducated "debugging", I'm testing with I was able to create overly complicated environment which reproduces the error and after some digging SIGSEGV happens here: Clippy release builds on 32 bit Linux crash when anything tries to use Let's see what
One more Let's dump It's the same for both builds, click here to reveal
Okay what if we disable lines 159-168 and just put
😨 Looks like 2nd I'll see tomorrow if I can find easy way to create environment like this for anybody to try. |
why is the These are regular slice iterators. Either the corruption happens way before this iteration and this is just a deterministic symptom, or slice iterators are broken. |
That's odd, possibly I accidentally dropped them when cleaning up output
from irrelevant prints.
niedz., 4 lis 2018, 00:19: Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer <
notifications@github.com> napisał(a):
… why is the Some missing in release mode? There's some truly funky stuff
going on here.
These are regular slice iterators. Either the corruption happens way
before this iteration and this is just a deterministic symptom, or slice
iterators are broken.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#3345 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABHsdgCrJcN18WKGXLDJAH8tOjczMa-Tks5uriRxgaJpZM4XyKYR>
.
|
Okay I fixed the output.
The same print with
|
Unfortunately I couldn't make reproducer for Linux host systems, the only thing that worked is Docker for Windows with Hyper-V (requires Windows 10 Enterprise, Pro, or Education and compatible CPU). Run this in Powershell:
In this container Clippy in release mode deterministically causes SIGSEGV. |
I bet it's rust-lang/rust#52026 |
Yep that was the issue, going to be fixed via rust-lang/rust#56781 |
Should be fixed with the next nightly. |
So this should be fixed now. Feel free to reopen if this issue comes up again. |
Line-wrapped output (for viewing convenience; irrelevant path specs replaced with
...
). [In real life, the "Caused by" lines are one long line all the way through the end of the SIGSEGV.]This is reproducible. It happens regardless of the status of
cargo clean
; i.e., if I do issuecargo clean; cargo clippy
it happens, and if I docargo build; cargo clippy
it happens. (Note that my build succeeds).Please let me know if you need any additional information.
The text was updated successfully, but these errors were encountered: