-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends.gardeningvm-gcRelated to the VM's garbage collectorRelated to the VM's garbage collector
Description
from log
==================
WARNING: ThreadSanitizer: data race (pid=2588)
Read of size 8 at 0x7b7c0003fe48 by thread T7 (mutexes: write M0):
#0 dart::Page::object_end() const ../../out/ReleaseTSANX64/../../runtime/vm/heap/page.h (dart+0x27808d3)
#1 dart::Page::used() const ../../out/ReleaseTSANX64/../../runtime/vm/heap/page.h:92:34 (dart+0x27808d3)
#2 dart::SemiSpace::used_in_words() const ../../out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.h:46:18 (dart+0x27808d3)
#3 dart::Scavenger::UsedInWords() const ../../out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.h:159:17 (dart+0x27808d3)
#4 dart::Scavenger::GetCurrentUsage() const ../../out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.h:165:27 (dart+0x27808d3)
#5 dart::Heap::RecordBeforeGC(dart::GCType, dart::GCReason) ../../out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:1033:36 (dart+0x27808d3)
#6 dart::Heap::CollectNewSpaceGarbage(dart::Thread*, dart::GCType, dart::GCReason) ../../out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:487:5 (dart+0x277f10e)
#7 dart::Heap::CollectAllGarbage(dart::GCReason, bool) ../../out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:598:3 (dart+0x277eab3)
#8 Dart_ExecuteInternalCommand ../../out/ReleaseTSANX64/../../runtime/vm/native_api_impl.cc:279:38 (dart+0x2e4df19)
#9 TriggerGC ../../out/ReleaseTSANX64/../../runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc:88:3 (libffi_test_functions.so+0xb074c)
#10 <null> <null> (memfd:dart-code (deleted)+0x644a)
#11 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:145:10 (dart+0x24a52fb)
#12 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:37:10 (dart+0x24a86a7)
#13 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:732:28 (dart+0x24a86a7)
#14 dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message>>) ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:1437:15 (dart+0x24e3bbb)
#15 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:239:16 (dart+0x2527d43)
#16 dart::MessageHandler::TaskCallback() ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:450:18 (dart+0x2528750)
#17 dart::MessageHandlerTask::Run() ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31:15 (dart+0x2529123)
#18 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:158:15 (dart+0x2746479)
#19 dart::ThreadPool::Worker::Main(unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:330:9 (dart+0x2746d37)
#20 dart::ThreadStart(void*) ../../out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:154:5 (dart+0x265c343)
Previous write of size 8 at 0x7b7c0003fe48 by thread T9:
#0 dart::Thread::set_top(unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/thread.h:686:34 (dart+0x277e004)
#1 dart::Scavenger::TryAllocateFromTLAB(dart::Thread*, long) ../../out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.h:261:13 (dart+0x277e004)
#2 dart::Scavenger::TryAllocate(dart::Thread*, long) ../../out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.h:141:12 (dart+0x277e004)
#3 dart::Heap::AllocateNew(dart::Thread*, long) ../../out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:84:27 (dart+0x277e004)
#4 dart::Heap::Allocate(dart::Thread*, long, dart::Heap::Space) ../../out/ReleaseTSANX64/../../runtime/vm/heap/heap.h:87:16 (dart+0x254818b)
#5 dart::Object::Allocate(long, long, dart::Heap::Space, bool) ../../out/ReleaseTSANX64/../../runtime/vm/object.cc:2799:25 (dart+0x2570625)
#6 dart::Context::New(long, dart::Heap::Space) ../../out/ReleaseTSANX64/../../runtime/vm/object.cc:18431:21 (dart+0x25a0bff)
#7 dart::DRT_HelperAllocateContext(dart::Isolate*, dart::Thread*, dart::Zone*, dart::NativeArguments) ../../out/ReleaseTSANX64/../../runtime/vm/runtime_entry.cc:702:13 (dart+0x26e7bef)
#8 dart::DRT_AllocateContext(dart::NativeArguments) ../../out/ReleaseTSANX64/../../runtime/vm/runtime_entry.cc:699:1 (dart+0x26e7bef)
#9 <null> <null> (memfd:dart-code (deleted)+0x2b39)
#10 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:145:10 (dart+0x24a52fb)
#11 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:37:10 (dart+0x24a86a7)
#12 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:732:28 (dart+0x24a86a7)
#13 dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message>>) ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:1437:15 (dart+0x24e3bbb)
#14 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:239:16 (dart+0x2527d43)
#15 dart::MessageHandler::TaskCallback() ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:450:18 (dart+0x2528750)
#16 dart::MessageHandlerTask::Run() ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31:15 (dart+0x2529123)
#17 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:158:15 (dart+0x2746479)
#18 dart::ThreadPool::Worker::Main(unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:330:9 (dart+0x2746d37)
#19 dart::ThreadStart(void*) ../../out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:154:5 (dart+0x265c343)
Location is heap block of size 3376 at 0x7b7c0003fe00 allocated by thread T9:
#0 operator new(unsigned long) ../staging/llvm_build/tools/clang/stage2-bins/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/compiler-rt/lib/tsan/rtl/tsan_new_delete.cpp:64:3 (dart+0x2245517)
#1 dart::ThreadRegistry::GetFromFreelistLocked(bool) ../../out/ReleaseTSANX64/../../runtime/vm/thread_registry.cc:139:14 (dart+0x2746ef9)
#2 dart::ThreadRegistry::GetFreeThreadLocked(bool) ../../out/ReleaseTSANX64/../../runtime/vm/thread_registry.cc:30:20 (dart+0x2746ef9)
#3 dart::IsolateGroup::ScheduleThreadLocked(dart::MonitorLocker*, dart::Thread*, bool, bool, bool) ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc (dart+0x24dec67)
#4 dart::Isolate::ScheduleThread(bool, bool, bool) ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:3693:16 (dart+0x24ecdfa)
#5 dart::Thread::EnterIsolate(dart::Isolate*, bool) ../../out/ReleaseTSANX64/../../runtime/vm/thread.cc:282:29 (dart+0x273ee04)
#6 dart::Isolate::InitIsolate(char const*, dart::IsolateGroup*, Dart_IsolateFlags const&, bool) ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:1839:8 (dart+0x24e5b4b)
#7 dart::Dart::CreateIsolate(char const*, Dart_IsolateFlags const&, dart::IsolateGroup*) ../../out/ReleaseTSANX64/../../runtime/vm/dart.cc:824:7 (dart+0x249fd4b)
#8 dart::CreateIsolate(dart::IsolateGroup*, bool, char const*, void*, char**) ../../out/ReleaseTSANX64/../../runtime/vm/dart_api_impl.cc:1272:16 (dart+0x2e1887e)
#9 dart::CreateWithinExistingIsolateGroup(dart::IsolateGroup*, char const*, char**) ../../out/ReleaseTSANX64/../../runtime/vm/dart_api_impl.cc:1347:7 (dart+0x2e18788)
#10 dart::SpawnIsolateTask::RunLightweight(char const*) ../../out/ReleaseTSANX64/../../runtime/lib/isolate.cc:685:24 (dart+0x24066c7)
#11 dart::SpawnIsolateTask::Run() ../../out/ReleaseTSANX64/../../runtime/lib/isolate.cc:638:7 (dart+0x240645c)
#12 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:158:15 (dart+0x2746479)
#13 dart::ThreadPool::Worker::Main(unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:330:9 (dart+0x2746d37)
#14 dart::ThreadStart(void*) ../../out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:154:5 (dart+0x265c343)
Mutex M0 (0x7b6800000850) created at:
#0 pthread_mutex_init ../staging/llvm_build/tools/clang/stage2-bins/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1341:3 (dart+0x21c1490)
#1 dart::Mutex::Mutex(char const*) ../../out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:308:12 (dart+0x265c7a7)
#2 dart::Scavenger::Scavenger(dart::Heap*, long) ../../out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.cc:756:12 (dart+0x279b844)
#3 dart::Heap::Heap(dart::IsolateGroup*, bool, long, long) ../../out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:49:7 (dart+0x277d6ff)
#4 dart::Heap::Init(dart::IsolateGroup*, bool, long, long) ../../out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:731:34 (dart+0x2781a83)
#5 dart::IsolateGroup::CreateHeap(bool, bool) ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:475:3 (dart+0x24de23f)
#6 Dart_CreateIsolateGroup ../../out/ReleaseTSANX64/../../runtime/vm/dart_api_impl.cc:1383:10 (dart+0x2e18cfd)
#7 dart::bin::CreateIsolateGroupAndSetupHelper(bool, char const*, char const*, char const*, Dart_IsolateFlags*, void*, char**, int*, bool) ../../out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:813:15 (dart+0x2251064)
#8 dart::bin::RunMainIsolate(char const*, char const*, bool, dart::bin::CommandLineOptions*) ../../out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:1023:26 (dart+0x2250802)
#9 dart::bin::main(int, char**) ../../out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:1407:9 (dart+0x2251d6b)
#10 main ../../out/ReleaseTSANX64/../../runtime/bin/main.cc:9:3 (dart+0x22506b4)
Thread T7 'DartWorker' (tid=2597, running) created by thread T6 at:
#0 pthread_create ../staging/llvm_build/tools/clang/stage2-bins/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1048:3 (dart+0x21bfb1b)
#1 dart::OSThread::Start(char const*, void (*)(unsigned long), unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:173:12 (dart+0x265c1f3)
#2 dart::ThreadPool::Worker::StartThread() ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:296:16 (dart+0x2745b50)
#3 dart::ThreadPool::RunImpl(std::__2::unique_ptr<dart::ThreadPool::Task, std::__2::default_delete<dart::ThreadPool::Task>>) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:94:17 (dart+0x2745b50)
#4 bool dart::ThreadPool::Run<dart::SpawnIsolateTask, dart::Isolate*&, std::__2::unique_ptr<dart::IsolateSpawnState, std::__2::default_delete<dart::IsolateSpawnState>>>(dart::Isolate*&, std::__2::unique_ptr<dart::IsolateSpawnState, std::__2::default_delete<dart::IsolateSpawnState>>&&) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.h:46:12 (dart+0x240356d)
#5 dart::DN_HelperIsolate_spawnFunction(dart::Isolate*, dart::Thread*, dart::Zone*, dart::NativeArguments*) ../../out/ReleaseTSANX64/../../runtime/lib/isolate.cc:959:36 (dart+0x240356d)
#6 dart::BootstrapNatives::DN_Isolate_spawnFunction(dart::Thread*, dart::Zone*, dart::NativeArguments*) ../../out/ReleaseTSANX64/../../runtime/lib/isolate.cc:906:1 (dart+0x240356d)
#7 dart::NativeEntry::BootstrapNativeCallWrapper(_Dart_NativeArguments*, void (*)(_Dart_NativeArguments*)) ../../out/ReleaseTSANX64/../../runtime/vm/native_entry.cc:140:37 (dart+0x2544d4f)
#8 <null> <null> (memfd:dart-code (deleted)+0x2caa)
#9 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:145:10 (dart+0x24a52fb)
#10 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:37:10 (dart+0x24a86a7)
#11 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:732:28 (dart+0x24a86a7)
#12 dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message>>) ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:1437:15 (dart+0x24e3bbb)
#13 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:239:16 (dart+0x2527d43)
#14 dart::MessageHandler::TaskCallback() ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:450:18 (dart+0x2528750)
#15 dart::MessageHandlerTask::Run() ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31:15 (dart+0x2529123)
#16 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:158:15 (dart+0x2746479)
#17 dart::ThreadPool::Worker::Main(unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:330:9 (dart+0x2746d37)
#18 dart::ThreadStart(void*) ../../out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:154:5 (dart+0x265c343)
Thread T9 'DartWorker' (tid=2599, running) created by thread T8 at:
#0 pthread_create ../staging/llvm_build/tools/clang/stage2-bins/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1048:3 (dart+0x21bfb1b)
#1 dart::OSThread::Start(char const*, void (*)(unsigned long), unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:173:12 (dart+0x265c1f3)
#2 dart::ThreadPool::Worker::StartThread() ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:296:16 (dart+0x2745b50)
#3 dart::ThreadPool::RunImpl(std::__2::unique_ptr<dart::ThreadPool::Task, std::__2::default_delete<dart::ThreadPool::Task>>) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:94:17 (dart+0x2745b50)
#4 bool dart::ThreadPool::Run<dart::MessageHandlerTask, dart::MessageHandler*>(dart::MessageHandler*&&) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.h:46:12 (dart+0x2527931)
#5 dart::MessageHandler::Run(dart::ThreadPool*, dart::MessageHandler::MessageStatus (*)(unsigned long), void (*)(unsigned long), unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:120:24 (dart+0x2527931)
#6 dart::Isolate::Run() ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:2382:22 (dart+0x24e802c)
#7 Dart_RunLoopAsync ../../out/ReleaseTSANX64/../../runtime/vm/dart_api_impl.cc:2116:12 (dart+0x2e1d18b)
#8 dart::SpawnIsolateTask::Run(dart::Isolate*) ../../out/ReleaseTSANX64/../../runtime/lib/isolate.cc:740:10 (dart+0x2406c75)
#9 dart::SpawnIsolateTask::RunLightweight(char const*) ../../out/ReleaseTSANX64/../../runtime/lib/isolate.cc:705:5 (dart+0x2406744)
#10 dart::SpawnIsolateTask::Run() ../../out/ReleaseTSANX64/../../runtime/lib/isolate.cc:638:7 (dart+0x240645c)
#11 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:158:15 (dart+0x2746479)
#12 dart::ThreadPool::Worker::Main(unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:330:9 (dart+0x2746d37)
#13 dart::ThreadStart(void*) ../../out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:154:5 (dart+0x265c343)
SUMMARY: ThreadSanitizer: data race ../../out/ReleaseTSANX64/../../runtime/vm/heap/page.h in dart::Page::object_end() const
==================
=> Running "out/ReleaseTSANX64/dart --disable-dart-dev -Drepeat=4 -Dshard=109 -Dshards=200 --sound-null-safety runtime/tests/concurrency/generated_stress_test_nnbd.dart.jit.dill" failed with -6
=> Possible crash 0 (pid: 2588)
Running "out/ReleaseTSANX64/dart --disable-dart-dev -Drepeat=4 -Dshard=119 -Dshards=200 --sound-null-safety runtime/tests/concurrency/generated_stress_test_nnbd.dart.jit.dill"
Metadata
Metadata
Assignees
Labels
area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends.gardeningvm-gcRelated to the VM's garbage collectorRelated to the VM's garbage collector