-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
rustc hangs and leaks memory #79714
Labels
A-traits
Area: Trait system
C-bug
Category: This is a bug.
I-hang
Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc.
P-low
Low priority
regression-from-stable-to-beta
Performance or correctness regression from stable to beta.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
Milestone
Comments
jonas-schievink
added
the
regression-from-stable-to-nightly
Performance or correctness regression from stable to nightly.
label
Dec 5, 2020
rustbot
added
the
I-prioritize
Issue: Indicates that prioritization has been requested for this issue.
label
Dec 5, 2020
JohnTitor
added
the
I-hang
Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc.
label
Dec 5, 2020
This happens on beta as well. |
JohnTitor
added
regression-from-stable-to-beta
Performance or correctness regression from stable to beta.
and removed
regression-from-stable-to-nightly
Performance or correctness regression from stable to nightly.
labels
Dec 5, 2020
camelid
added
A-traits
Area: Trait system
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
P-high
High priority
and removed
I-prioritize
Issue: Indicates that prioritization has been requested for this issue.
labels
Dec 5, 2020
Assigning |
I am going to move this to P-low as this isn't breaking working code, we have more urgent fall out from #73905 that needs to be fixed first. |
Mark-Simulacrum
changed the title
rustc nightly hangs and leaks memory
rustc hangs and leaks memory
Dec 18, 2020
matthewjasper
added a commit
to matthewjasper/rust
that referenced
this issue
Dec 20, 2020
This avoid the hang/oom from rust-lang#79714
bors
added a commit
to rust-lang-ci/rust
that referenced
this issue
Dec 26, 2020
…g, r=Mark-Simulacrum Prevent caching normalization results with a cycle When normalizing a projection which results in a cycle, we would cache the result of `project_type` without the nested obligations (because they're not needed for inference). This would result in the nested obligations only being handled once in fulfill, which would avoid the cycle error. `get_paranoid_cache_value_obligation` used to add an obligation that resulted in a cycle in this case previously, but was removed by rust-lang#73905. This PR makes the projection cache not cache the value of a projection if it was ever normalized in a cycle (except in a snapshot that's rolled back). Fixes rust-lang#79714. r? `@nikomatsakis`
Mark-Simulacrum
pushed a commit
to Mark-Simulacrum/rust
that referenced
this issue
Dec 27, 2020
This avoid the hang/oom from rust-lang#79714
Mark-Simulacrum
pushed a commit
to Mark-Simulacrum/rust
that referenced
this issue
Dec 27, 2020
When normalizing a projection which results in a cycle, we would cache the result of `project_type` without the nested obligations (because they're not needed for inference). This would result in the nested obligations only being handled once in fulfill, which would avoid the cycle error. Fixes rust-lang#79714, a regresion from rust-lang#79305 caused by the removal of `get_paranoid_cache_value_obligation`.
Mark-Simulacrum
pushed a commit
to Mark-Simulacrum/rust
that referenced
this issue
Dec 31, 2020
This avoid the hang/oom from rust-lang#79714
Mark-Simulacrum
pushed a commit
to Mark-Simulacrum/rust
that referenced
this issue
Dec 31, 2020
When normalizing a projection which results in a cycle, we would cache the result of `project_type` without the nested obligations (because they're not needed for inference). This would result in the nested obligations only being handled once in fulfill, which would avoid the cycle error. Fixes rust-lang#79714, a regresion from rust-lang#79305 caused by the removal of `get_paranoid_cache_value_obligation`.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-traits
Area: Trait system
C-bug
Category: This is a bug.
I-hang
Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc.
P-low
Low priority
regression-from-stable-to-beta
Performance or correctness regression from stable to beta.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
In stable,
rustc 1.48.0 (7eac88abb 2020-11-16)
,rustc demo.rs
promptly returnsoverflow evaluating the requirement
and exits. This is expected behavior.In nightly,
rustc 1.50.0-nightly (5be3f9f10 2020-12-03)
,rustc demo.rs
hangs indefinitely, using 100% of one core. Memory usage fluctuates but tends to grow over time at ~800 MB per minute on my machine.Source
rustc --version --verbose
:The text was updated successfully, but these errors were encountered: