sdk icon indicating copy to clipboard operation
sdk copied to clipboard

TSAN: data race during card marking

Open rmacnak-google opened this issue 1 year ago • 0 comments

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)

log

rmacnak-google avatar Oct 14 '24 17:10 rmacnak-google