diff --git a/v8/src/execution/futex-emulation.cc b/v8/src/execution/futex-emulation.cc --- a/v8/src/execution/futex-emulation.cc +++ b/v8/src/execution/futex-emulation.cc @@ -216,8 +216,10 @@ void FutexEmulation::NotifyAsyncWaiter(FutexWaitListNode* node) { } void FutexWaitList::AddNode(FutexWaitListNode* node) { - DCHECK_NULL(node->prev_); - DCHECK_NULL(node->next_); + // Bandaid: enforce in release builds. A reentrant Atomics.wait from a nested + // message loop can double-add the per-isolate singleton sync-wait node. + CHECK_NULL(node->prev_); + CHECK_NULL(node->next_); auto [it, inserted] = location_lists_.insert({node->wait_location_, HeadAndTail{node, node}}); if (!inserted) {