sdk
sdk copied to clipboard
TSAN: data race during card marking
WARNING: ThreadSanitizer: data race (pid=660615)
Atomic write of size 8 at 0x72640004fb98 by thread T2:
#0 unsigned long std::_LIBCPP_ABI_NAMESPACE::__cxx_atomic_fetch_or[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:1063:12 (dart+0x28ed404)
#1 std::_LIBCPP_ABI_NAMESPACE::__atomic_base<unsigned long, true>::fetch_or[abi:v15000](unsigned long, std::_LIBCPP_ABI_NAMESPACE::memory_order) out/ReleaseTSANX64/../../third_party/libcxx/include/atomic:1705:17 (dart+0x28ed404)
#2 dart::Page::RememberCard(unsigned long) out/ReleaseTSANX64/../../runtime/vm/heap/page.h:299:11 (dart+0x28ed404)
#3 dart::Page::RememberCard(dart::ObjectPtr const*) out/ReleaseTSANX64/../../runtime/vm/heap/page.h:186:5 (dart+0x28ed404)
#4 dart::MarkingVisitorBase<true>::VisitCards(dart::ArrayPtr) out/ReleaseTSANX64/../../runtime/vm/heap/marker.cc:221:15 (dart+0x28ed404)
#5 dart::MarkingVisitorBase<true>::DrainMarkingStackWithPauseChecks() out/ReleaseTSANX64/../../runtime/vm/heap/marker.cc:161:18 (dart+0x28ee848)
#6 dart::ConcurrentMarkTask::Run() out/ReleaseTSANX64/../../runtime/vm/heap/marker.cc:1027:17 (dart+0x28ee1bd)
#7 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:203:15 (dart+0x28ac13e)
#8 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:363:9 (dart+0x28ac69a)
#9 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dart+0x281d486)
Previous write of size 8 at 0x72640004fb98 by thread T9:
#0 calloc ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:686:5 (dart+0x229024b)
#1 dart::calloc(unsigned long, unsigned long) out/ReleaseTSANX64/../../runtime/platform/allocation.cc:12:18 (dart+0x2321224)
#2 dart::Page::RememberCard(unsigned long) out/ReleaseTSANX64/../../runtime/vm/heap/page.h:283:36 (dart+0x283ff5d)
#3 dart::Page::RememberCard(dart::ObjectPtr const*) out/ReleaseTSANX64/../../runtime/vm/heap/page.h:186:5 (dart+0x283ff5d)
#4 DLRT_RememberCard out/ReleaseTSANX64/../../runtime/vm/raw_object.cc:779:21 (dart+0x283ff5d)
#5 <null> <null> (0x7f4ee7d80dce)
#6 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:38:10 (dart+0x268d841)
#7 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:718:28 (dart+0x268d841)
#8 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+0x26c5ee1)
#9 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:229:16 (dart+0x27072d2)
#10 dart::MessageHandler::TaskCallback() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:443:18 (dart+0x2707981)
#11 dart::MessageHandlerTask::Run() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31:15 (dart+0x2708053)
#12 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:203:15 (dart+0x28ac13e)
#13 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:363:9 (dart+0x28ac69a)
#14 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dart+0x281d486)
Location is heap block of size 1032 at 0x72640004fb00 allocated by thread T9:
#0 calloc ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:686:5 (dart+0x229024b)
#1 dart::calloc(unsigned long, unsigned long) out/ReleaseTSANX64/../../runtime/platform/allocation.cc:12:18 (dart+0x2321224)
#2 dart::Page::RememberCard(unsigned long) out/ReleaseTSANX64/../../runtime/vm/heap/page.h:283:36 (dart+0x283ff5d)
#3 dart::Page::RememberCard(dart::ObjectPtr const*) out/ReleaseTSANX64/../../runtime/vm/heap/page.h:186:5 (dart+0x283ff5d)
#4 DLRT_RememberCard out/ReleaseTSANX64/../../runtime/vm/raw_object.cc:779:21 (dart+0x283ff5d)
#5 <null> <null> (0x7f4ee7d80dce)
#6 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:38:10 (dart+0x268d841)
#7 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:718:28 (dart+0x268d841)
#8 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+0x26c5ee1)
#9 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:229:16 (dart+0x27072d2)
#10 dart::MessageHandler::TaskCallback() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:443:18 (dart+0x2707981)
#11 dart::MessageHandlerTask::Run() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31:15 (dart+0x2708053)
#12 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:203:15 (dart+0x28ac13e)
#13 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:363:9 (dart+0x28ac69a)
#14 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dart+0x281d486)