-
Notifications
You must be signed in to change notification settings - Fork 6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[VM] Fix flaky crash when unwinding the mutator stack during GC
The mutator thread structure is kept alive until the death of the isolate. Yet the mutator thread does not have to be scheduled all the time. A native call, for example, can suspend the isolate via Dart_ExitIsolate to perform other work. This particular flaky crash had precisely this problem: The mutator thread suspended itself with an IsolateSaver scope (which uses Dart_ExitIsolate) and invoked Dart_NewNativePort. While at the same time the background compiler for that isolate triggered an oldspace allocation, which triggered a marking task. The marker task needs to traverses the mutator stack and hits a frame with a deoptimization marker, which causes it to access the mutator thread's isolate pointer, which was incorrectly NULL. Fixes dart-lang/sdk#34748 Fixes dart-lang/sdk#34323 Change-Id: I80440856f72b3c194a516084ddc254b2e56740d8 Reviewed-on: https://dart-review.googlesource.com/c/80860 Reviewed-by: Vyacheslav Egorov <[email protected]> Commit-Queue: Martin Kustermann <[email protected]>
- Loading branch information
1 parent
45f9462
commit ab6eb93
Showing
3 changed files
with
43 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters