Commit 7badc3f0 authored by Gabriel Charette's avatar Gabriel Charette Committed by Commit Bot

Reland : Preempt ConcurrentMarking tasks ASAP when cancelling marking.

Reland reason : the failure was

Check failed: IsGlobalEmpty().
    v8::base::debug::StackTrace::StackTrace()
    v8::platform::(anonymous namespace)::PrintStackTrace()
    V8_Fatal(char const*, int, char const*, ...)
    v8::internal::Worklist<v8::internal::HeapObject*, 64>::~Worklist()
    v8::internal::MarkCompactCollector::~MarkCompactCollector()
    v8::internal::MarkCompactCollector::~MarkCompactCollector()
    v8::internal::Heap::TearDown()
    v8::internal::Isolate::Deinit()
    v8::internal::Isolate::TearDown()
    v8::Shell::OnExit(v8::Isolate*)
    v8::Shell::Main(int, char**)

this is believed to be fixed by the change to flush the shared
worklist to global in
https://chromium-review.googlesource.com/c/v8/v8/+/925267

Follow-up to https://chromium-review.googlesource.com/c/v8/v8/+/924867

(cherry picked from commit 8b53b9d9)

Bug: chromium:812178
Change-Id: I796204656e2c89e7efecda2c275a1888c31aba7b
Reviewed-on: https://chromium-review.googlesource.com/925268
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51430}
parent b64afff3
...@@ -866,9 +866,7 @@ void MarkCompactCollector::Prepare() { ...@@ -866,9 +866,7 @@ void MarkCompactCollector::Prepare() {
if (was_marked_incrementally_ && heap_->ShouldAbortIncrementalMarking()) { if (was_marked_incrementally_ && heap_->ShouldAbortIncrementalMarking()) {
heap()->incremental_marking()->Stop(); heap()->incremental_marking()->Stop();
heap()->incremental_marking()->AbortBlackAllocation(); heap()->incremental_marking()->AbortBlackAllocation();
// TODO(gab): PREEMPT_TASKS here in a follow-up CL. FinishConcurrentMarking(ConcurrentMarking::StopRequest::PREEMPT_TASKS);
FinishConcurrentMarking(
ConcurrentMarking::StopRequest::COMPLETE_ONGOING_TASKS);
heap()->incremental_marking()->Deactivate(); heap()->incremental_marking()->Deactivate();
ClearMarkbits(); ClearMarkbits();
AbortWeakCollections(); AbortWeakCollections();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment