-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Closed
Labels
A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsI-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.
Milestone
Description
Failing inside a destructor is broken to begin with, but failing from within the cycle collector is even worse:
- The cycle collector won't catch the failure and continue
- The cycle collector jumps from the C stack to the Rust stack to run the destructor but does not do the proper maintenance if the destructor throws
- The logic that prevents failure in crust functions is in effect because of reentry into the Rust stack, so the runtime will abort
- The final cycle collection happens outside of any try-catch block so the runtime will abort
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsI-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.
Type
Fields
Give feedbackNo fields configured for issues without a type.