Repository navigation
Closed
Labels
A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.C-bugCategory: This is a bug.Category: This is a bug.E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.Call for participation: An issue has been fixed and does not reproduce, but no test has been added.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-mediumMedium priorityMedium priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.glacierICE tracked in rust-lang/glacier.ICE tracked in rust-lang/glacier.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.Performance or correctness regression from one stable version to another.
Description
I uploaded the code that causes the issue to rust-stack-overflow. The stack overflow occurs on both the nightly and stable compilers only when building in debug mode.
I dumped the process, and it appears that the recursion is occurring inside the regex_automata crate in the rustc_driver.
Details
000000a0`9d807000 00007ffc`7655b3c7 : 0000028d`024e0000 00000000`00000000 00000000`000000c8 00000000`00000000 : ntdll!RtlpLowFragHeapAllocFromContext+0x10
000000a0`9d807010 00007ffc`08aaf680 : 00000000`00000000 00000000`000000c8 00000000`00000000 00000000`00000000 : ntdll!RtlpAllocateHeapInternal+0x9a7
000000a0`9d807120 00007ffc`08a8cc7b : 00000000`00000000 00007ffc`7655b86b 00000000`0070020e 00000000`000000b6 : rustc_driver_967b081c0ba70af3!_rust_alloc_zeroed+0x2375c
000000a0`9d807150 00007ffc`05d02ffa : 00000000`00000000 00000000`00000000 00000000`00000000 0000028d`024e2100 : rustc_driver_967b081c0ba70af3!_rust_alloc_zeroed+0xd57
000000a0`9d807180 00007ffc`05cfbfb4 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x175dea
000000a0`9d8071e0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16eda4
000000a0`9d8073f0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d807600 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d807810 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d807a20 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d807c30 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d807e40 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d808050 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d808260 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d808470 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d808680 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d808890 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d808aa0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d808cb0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d808ec0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d8090d0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d8092e0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d8094f0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d809700 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d809910 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d809b20 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d809d30 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d809f40 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80a150 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80a360 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80a570 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80a780 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80a990 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80aba0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80adb0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80afc0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80b1d0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80b3e0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80b5f0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80b800 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80ba10 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80bc20 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80be30 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80c040 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80c250 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80c460 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80c670 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80c880 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80ca90 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80cca0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80ceb0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80d0c0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80d2d0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80d4e0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80d6f0 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
000000a0`9d80d900 00007ffc`05cfc348 : 00000000`00000000 00000000`000000d0 00000000`000000c8 00000000`00000020 : rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+0x16f138
SYMBOL_NAME: rustc_driver_967b081c0ba70af3!ZN14regex_automata10sparse_set9SparseSet5clear17hb2288ea68fdfded5E+16ef27
MODULE_NAME: rustc_driver_967b081c0ba70af3
Metadata
Metadata
Assignees
Labels
A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.C-bugCategory: This is a bug.Category: This is a bug.E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.Call for participation: An issue has been fixed and does not reproduce, but no test has been added.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-mediumMedium priorityMedium priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.glacierICE tracked in rust-lang/glacier.ICE tracked in rust-lang/glacier.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.Performance or correctness regression from one stable version to another.
Activity
hellow554 commentedon Jul 2, 2021
Easiest MCVE of my live 😂
All you need is a function with at least 2593 variables:
Huge file incoming
cargo buildis required to trigger the ICE. It's very fast to compile as well. I try to bisect it now.hellow554 commentedon Jul 2, 2021
searched nightlies: from nightly-2021-01-01 to nightly-2021-07-01
regressed nightly: nightly-2021-03-05
searched commits: from 476acbf to 45b3c28
regressed commit: 4099208
bisected with cargo-bisect-rustc v0.6.0
Host triple: x86_64-unknown-linux-gnu
Reproduce with:
@rustbot modify labels: -E-needs-mcve
hellow554 commentedon Jul 2, 2021
Hey @JohnTitor
this seems to be a problem with the LLVM12 upgrade. Would you think pinging the LLVM ice breaker crew is worth it?
JohnTitor commentedon Jul 2, 2021
Thanks for bisecting!
I'm not sure how much of an impact this has on the real use-case but just in case:
@rustbot ping llvm
rustbot commentedon Jul 2, 2021
Hey LLVM ICE-breakers! This bug has been identified as a good
"LLVM ICE-breaking candidate". In case it's useful, here are some
instructions for tackling these sorts of bugs. Maybe take a look?
Thanks! <3
cc @camelid @comex @cuviper @DutchGhost @hdhoang @henryboisdequin @heyrutvik @higuoxing @JOE1994 @jryans @mmilenko @nagisa @nikic @Noah-Kennedy @SiavoshZarrasvand @spastorino @vertexclique
Add 86784
4 remaining items
JOE1994 commentedon Sep 26, 2021
If no one hasn't been assigned to this issue yet, may I try taking on this issue?
hellow554 commentedon Sep 26, 2021
Hey @JOE1994 the issue seems to be fixed. So the only thing left is a test. I already wrote a MCVE so feel free to take it and submit it as a test.
@rustbot modify labels: E-needs-test
JOE1994 commentedon Sep 26, 2021
@hellow554
With the latest version of rustc (stable/nightly), I can still reproduce the stack overflow issue on my machine.
So I thought this issue hasn't been fixed yet.
Stable
error message
rustc --version --verboseNightly
error message
rustc --version --verbosehellow554 commentedon Sep 27, 2021
Intereseting. Why did glacier then said it is fixed :D
But yeah, I still reproduce it, you're right.
So feel free to investigate the issue ;)
JOE1994 commentedon Nov 21, 2021
Tried building @hellow554 's MCVE with the following setting
rustc -C debuginfo=1 main.rs: succeeds without errorsrustc -C debuginfo=2 main.rs: fails with the following error messageAlexendoo commentedon Feb 18, 2022
No longer occurs since #93577, this time it doesn't appear to be spurious either
Rollup merge of rust-lang#98870 - TaKO8Ki:add-regression-test-for-867…
Auto merge of rust-lang#98874 - matthiaskrgr:rollup-0u4hm54, r=matthi…