-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
P3A lower priority bug or feature requestA lower priority bug or feature requestarea-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.triagedIssue has been triaged by sub teamIssue has been triaged by sub teamvm-gcRelated to the VM's garbage collectorRelated to the VM's garbage collector
Description
e.g. From this flaky log:
/=====================================================================================\
| corelib/regexp/ranges-and-escaped-hyphens_test broke (Pass -> Crash, expected Pass) |
\=====================================================================================/
--- Command "vm" (took 06.000987s):
DART_CONFIGURATION=ReleaseTSANX64 out/ReleaseTSANX64/dart --sound-null-safety -Dtest_runner.configuration=vm-tsan-linux-release-x64 --ignore-unrecognized-flags --packages=/b/s/w/ir/.dart_tool/package_config.json /b/s/w/ir/tests/corelib/regexp/ranges-and-escaped-hyphens_test.dart
exit code:
-6
stderr:
==================
WARNING: ThreadSanitizer: data race (pid=159617)
Atomic write of size 8 at 0x7fdd53800358 by thread T2:
#0 unsigned long std::_LIBCPP_ABI_NAMESPACE::__cxx_atomic_fetch_and[abi:v15000]<unsigned long>(std::_LIBCPP_ABI_NAMESPACE::__cxx_atomic_base_impl<unsigned long>*, unsigned long, std::_LIBCPP_ABI_NAMESPACE::memory_order) out/ReleaseTSANX64/../../third_party/libcxx/include/atomic:1052:12 (dart+0x29c76c3)
#1 std::_LIBCPP_ABI_NAMESPACE::__atomic_base<unsigned long, true>::fetch_and[abi:v15000](unsigned long, std::_LIBCPP_ABI_NAMESPACE::memory_order) out/ReleaseTSANX64/../../third_party/libcxx/include/atomic:1699:17 (dart+0x29c76c3)
#2 bool dart::AtomicBitFieldContainer<unsigned long>::TryClear<dart::BitField<dart::AtomicBitFieldContainer<unsigned long>, bool, 2, 1, false, void>>() out/ReleaseTSANX64/../../runtime/vm/bitfield.h:112:26 (dart+0x29c76c3)
#3 dart::UntaggedObject::TryAcquireMarkBit() out/ReleaseTSANX64/../../runtime/vm/raw_object.h:324:43 (dart+0x29c76c3)
#4 dart::MarkingVisitorBase<true>::TryAcquireMarkBit(dart::ObjectPtr) out/ReleaseTSANX64/../../runtime/vm/heap/marker.cc:636:28 (dart+0x29c76c3)
#5 dart::MarkingVisitorBase<true>::MarkObject(dart::ObjectPtr) out/ReleaseTSANX64/../../runtime/vm/heap/marker.cc:647:11 (dart+0x29c76c3)
#6 dart::MarkingVisitorBase<true>::VisitPointers(dart::ObjectPtr*, dart::ObjectPtr*) out/ReleaseTSANX64/../../runtime/vm/heap/marker.cc:378:35 (dart+0x29c76c3)
#7 dart::UntaggedObject::VisitPointersPredefined(dart::ObjectPointerVisitor*, long) out/ReleaseTSANX64/../../runtime/vm/raw_object.cc:291:5 (dart+0x28c5bcb)
#8 long dart::UntaggedObject::VisitPointersNonvirtual<dart::MarkingVisitorBase<true>>(dart::MarkingVisitorBase<true>*) out/ReleaseTSANX64/../../runtime/vm/raw_object.h:481:14 (dart+0x29c7ef7)
#9 dart::MarkingVisitorBase<true>::DrainMarkingStackWithPauseChecks() out/ReleaseTSANX64/../../runtime/vm/heap/marker.cc:163:32 (dart+0x29c7ef7)
#10 dart::ConcurrentMarkTask::Run() out/ReleaseTSANX64/../../runtime/vm/heap/marker.cc:1027:17 (dart+0x29c792d)
#11 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:203:15 (dart+0x2983d8e)
#12 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:363:9 (dart+0x29842ea)
#13 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dart+0x28a3f26)
Previous write of size 8 at 0x7fdd53800358 by thread T8 (mutexes: write M0):
#0 mmap64 ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/../../sanitizer_common/sanitizer_common_interceptors.inc:7534:3 (dart+0x2351222)
#1 dart::Map(void*, unsigned long, int, int, int, long) out/ReleaseTSANX64/../../runtime/vm/virtual_memory_posix.cc:62:18 (dart+0x299b7d9)
#2 dart::GenericMapAligned(void*, int, long, long, long, int) out/ReleaseTSANX64/../../runtime/vm/virtual_memory_posix.cc:96:19 (dart+0x299b7d9)
#3 dart::VirtualMemory::AllocateAligned(long, long, bool, bool, char const*) out/ReleaseTSANX64/../../runtime/vm/virtual_memory_posix.cc (dart+0x299b712)
#4 dart::Page::Allocate(long, unsigned long) out/ReleaseTSANX64/../../runtime/vm/heap/page.cc:81:14 (dart+0x29caaea)
#5 dart::SemiSpace::TryAllocatePageLocked(bool) out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.cc:756:16 (dart+0x29dd3eb)
#6 dart::Scavenger::TryAllocateNewTLAB(dart::Thread*, long, bool) out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.cc:1825:21 (dart+0x29dd3eb)
#7 dart::Scavenger::TryAllocate(dart::Thread*, long) out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.h:143:5 (dart+0x29b69f3)
#8 dart::Heap::AllocateNew(dart::Thread*, long) out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:82:27 (dart+0x29b69f3)
#9 dart::Heap::Allocate(dart::Thread*, long, dart::Heap::Space) out/ReleaseTSANX64/../../runtime/vm/heap/heap.h:73:16 (dart+0x27ab2eb)
#10 dart::Object::Allocate(long, long, dart::Heap::Space, bool, unsigned long, unsigned long) out/ReleaseTSANX64/../../runtime/vm/object.cc:2868:25 (dart+0x27d3ea8)
#11 dart::Closure::ObjectPtrType dart::Object::Allocate<dart::Closure>(dart::Heap::Space) out/ReleaseTSANX64/../../runtime/vm/object.h:745:51 (dart+0x2843a1f)
#12 dart::Closure::New(dart::TypeArguments const&, dart::TypeArguments const&, dart::TypeArguments const&, dart::Function const&, dart::Object const&, dart::Heap::Space) out/ReleaseTSANX64/../../runtime/vm/object.cc:26429:40 (dart+0x2843a1f)
#13 dart::DRT_HelperAllocateClosure(dart::Isolate*, dart::Thread*, dart::Zone*, dart::NativeArguments) out/ReleaseTSANX64/../../runtime/vm/runtime_entry.cc:735:13 (dart+0x29235e7)
#14 dart::DRT_AllocateClosure(dart::NativeArguments) out/ReleaseTSANX64/../../runtime/vm/runtime_entry.cc:727:1 (dart+0x29235e7)
#15 <null> <null> (0x7fdd676830fa)
#16 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:38:10 (dart+0x2712de1)
#17 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:718:28 (dart+0x2712de1)
#18 dart::IsolateMessageHandler::HandleMessage(std::_LIBCPP_ABI_NAMESPACE::unique_ptr<dart::Message, std::_LIBCPP_ABI_NAMESPACE::default_delete<dart::Message>>) out/ReleaseTSANX64/../../runtime/vm/isolate.cc:1456:15 (dart+0x274b491)
#19 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:229:16 (dart+0x278dcd2)
#20 dart::MessageHandler::TaskCallback() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:443:18 (dart+0x278e381)
#21 dart::MessageHandlerTask::Run() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31:15 (dart+0x278ea53)
#22 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:203:15 (dart+0x2983d8e)
#23 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:363:9 (dart+0x29842ea)
#24 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dart+0x28a3f26)
Mutex M0 (0x72680001fa78) created at:
#0 pthread_mutex_init ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1327:3 (dart+0x2318e63)
#1 dart::Mutex::Mutex() out/ReleaseTSANX64/../../runtime/platform/synchronization_posix.cc:31:12 (dart+0x23a7682)
#2 dart::Scavenger::Scavenger(dart::Heap*, long) out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.cc:804:12 (dart+0x29dab6f)
#3 dart::Heap::Heap(dart::IsolateGroup*, bool, long, long) out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:50:7 (dart+0x29b607f)
#4 dart::Heap::Init(dart::IsolateGroup*, bool, long, long) out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:709:34 (dart+0x29ba133)
#5 dart::IsolateGroup::CreateHeap(bool, bool) out/ReleaseTSANX64/../../runtime/vm/isolate.cc:475:3 (dart+0x274481c)
#6 Dart_CreateIsolateGroup out/ReleaseTSANX64/../../runtime/vm/dart_api_impl.cc:1340:10 (dart+0x2cbe5a9)
#7 dart::bin::CreateAndSetupKernelIsolate(char const*, char const*, Dart_IsolateFlags*, char**, int*) out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:468:15 (dart+0x23a5846)
#8 dart::bin::CreateIsolateGroupAndSetup(char const*, char const*, char const*, char const*, Dart_IsolateFlags*, void*, char**) out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:872:12 (dart+0x23a5846)
#9 dart::RunKernelTask::Run() out/ReleaseTSANX64/../../runtime/vm/kernel_isolate.cc:82:9 (dart+0x277c67f)
#10 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:203:15 (dart+0x2983d8e)
#11 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:363:9 (dart+0x29842ea)
#12 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dart+0x28a3f26)
Thread T2 'DartWorker' (tid=159620, running) created by main thread at:
#0 pthread_create ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1023:3 (dart+0x2317471)
#1 dart::OSThread::TryStart(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:116:12 (dart+0x28a3df5)
#2 dart::OSThread::Start(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANX64/../../runtime/vm/os_thread.cc:333:16 (dart+0x28a3c0f)
#3 dart::ThreadPool::Worker::StartThread() out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:333:3 (dart+0x298359a)
#4 dart::ThreadPool::RunImpl(std::_LIBCPP_ABI_NAMESPACE::unique_ptr<dart::ThreadPool::Task, std::_LIBCPP_ABI_NAMESPACE::default_delete<dart::ThreadPool::Task>>) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:130:17 (dart+0x298359a)
#5 bool dart::ThreadPool::Run<dart::RunServiceTask>() out/ReleaseTSANX64/../../runtime/vm/thread_pool.h:47:12 (dart+0x295adc0)
#6 dart::ServiceIsolate::Run() out/ReleaseTSANX64/../../runtime/vm/service_isolate.cc:509:44 (dart+0x295adc0)
#7 dart::Dart::DartInit(Dart_InitializeParams const*) out/ReleaseTSANX64/../../runtime/vm/dart.cc:516:5 (dart+0x270d54a)
#8 dart::Dart::Init(Dart_InitializeParams const*) out/ReleaseTSANX64/../../runtime/vm/dart.cc:535:18 (dart+0x270d5bb)
#9 Dart_Initialize out/ReleaseTSANX64/../../runtime/vm/dart_api_impl.cc:1170:10 (dart+0x2cbd86b)
#10 dart::bin::main(int, char**) out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:1401:11 (dart+0x23a4996)
#11 main out/ReleaseTSANX64/../../runtime/bin/main.cc:9:3 (dart+0x23a35c4)
Thread T8 'DartWorker' (tid=159659, running) created by thread T3 at:
#0 pthread_create ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1023:3 (dart+0x2317471)
#1 dart::OSThread::TryStart(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:116:12 (dart+0x28a3df5)
#2 dart::OSThread::Start(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANX64/../../runtime/vm/os_thread.cc:333:16 (dart+0x28a3c0f)
#3 dart::ThreadPool::Worker::StartThread() out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:333:3 (dart+0x298359a)
#4 dart::ThreadPool::RunImpl(std::_LIBCPP_ABI_NAMESPACE::unique_ptr<dart::ThreadPool::Task, std::_LIBCPP_ABI_NAMESPACE::default_delete<dart::ThreadPool::Task>>) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:130:17 (dart+0x298359a)
#5 bool dart::ThreadPool::Run<dart::MessageHandlerTask, dart::MessageHandler*>(dart::MessageHandler*&&) out/ReleaseTSANX64/../../runtime/vm/thread_pool.h:47:12 (dart+0x278d746)
#6 dart::MessageHandler::Run(dart::ThreadPool*, dart::MessageHandler::MessageStatus (*)(unsigned long), void (*)(unsigned long), unsigned long) out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:111:24 (dart+0x278d746)
#7 dart::RunKernelTask::Run() out/ReleaseTSANX64/../../runtime/vm/kernel_isolate.cc:112:33 (dart+0x277c876)
#8 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:203:15 (dart+0x2983d8e)
#9 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:363:9 (dart+0x29842ea)
#10 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dart+0x28a3f26)
SUMMARY: ThreadSanitizer: data race out/ReleaseTSANX64/../../third_party/libcxx/include/atomic:1052:12 in unsigned long std::_LIBCPP_ABI_NAMESPACE::__cxx_atomic_fetch_and[abi:v15000]<unsigned long>(std::_LIBCPP_ABI_NAMESPACE::__cxx_atomic_base_impl<unsigned long>*, unsigned long, std::_LIBCPP_ABI_NAMESPACE::memory_order)
==================
--- Re-run this test:
python3 tools/test.py -n vm-tsan-linux-release-x64 corelib/regexp/ranges-and-escaped-hyphens_test
/cc @rmacnak-google
Metadata
Metadata
Assignees
Labels
P3A lower priority bug or feature requestA lower priority bug or feature requestarea-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.triagedIssue has been triaged by sub teamIssue has been triaged by sub teamvm-gcRelated to the VM's garbage collectorRelated to the VM's garbage collector