Skip to content

TSAN data race in DN_HelperDateTime_timeZoneName #61396

@alexmarkov

Description

@alexmarkov

From iso-stress-linux-arm64 bot:

==================
WARNING: ThreadSanitizer: data race (pid=19464)
  Write of size 8 at 0xfffff382dc20 by thread T12:
    #0 free ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:741:3 (dartvm+0x221ae34) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #1 <null> <null> (libc.so.6+0xa8130) (BuildId: a10ee556ec5706640b27d9a9c346cb29e9516cec)
    #2 dart::DN_HelperDateTime_timeZoneName(dart::Isolate*, dart::Thread*, dart::Zone*, dart::NativeArguments*) out/ReleaseTSANARM64/../../runtime/lib/date.cc:24:22 (dartvm+0x254aa9c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #3 dart::BootstrapNatives::DN_DateTime_timeZoneName(dart::Thread*, dart::Zone*, dart::NativeArguments*) out/ReleaseTSANARM64/../../runtime/lib/date.cc:17:1 (dartvm+0x254aa9c)
    #4 dart::NativeEntry::BootstrapNativeCallWrapper(_Dart_NativeArguments*, void (*)(_Dart_NativeArguments*)) out/ReleaseTSANARM64/../../runtime/vm/native_entry.cc:150:37 (dartvm+0x2679d34) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #5 DRT_BootstrapNativeCall out/ReleaseTSANARM64/../../runtime/vm/native_entry.cc:117:3 (dartvm+0x2679cac) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #6 <null> <null> ([anon:dart-code]+0x371c)
    #7 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) out/ReleaseTSANARM64/../../runtime/vm/dart_entry.cc:41:10 (dartvm+0x25eb0bc) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #8 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) out/ReleaseTSANARM64/../../runtime/vm/dart_entry.cc:773:28 (dartvm+0x25eb0bc)
    #9 dart::IsolateMessageHandler::HandleMessage(std::_d::unique_ptr<dart::Message, std::_d::default_delete<dart::Message>>) out/ReleaseTSANARM64/../../runtime/vm/isolate.cc:1547:15 (dartvm+0x26219e0) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #10 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:229:16 (dartvm+0x265f914) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #11 dart::MessageHandler::TaskCallback() out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:443:18 (dartvm+0x265ff5c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #12 dart::MessageHandlerTask::Run() out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:31:15 (dartvm+0x2660514) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #13 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:207:15 (dartvm+0x27e6f44) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #14 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:367:9 (dartvm+0x27e7368) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #15 dart::ThreadStart(void*) out/ReleaseTSANARM64/../../runtime/vm/os_thread_linux.cc:97:5 (dartvm+0x276125c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)

  Previous write of size 8 at 0xfffff382dc20 by thread T10:
    #0 malloc ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:676:5 (dartvm+0x221a2cc) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #1 strdup <null> (libc.so.6+0x9051c) (BuildId: a10ee556ec5706640b27d9a9c346cb29e9516cec)
    #2 dart::DN_HelperDateTime_timeZoneName(dart::Isolate*, dart::Thread*, dart::Zone*, dart::NativeArguments*) out/ReleaseTSANARM64/../../runtime/lib/date.cc:24:22 (dartvm+0x254aa9c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #3 dart::BootstrapNatives::DN_DateTime_timeZoneName(dart::Thread*, dart::Zone*, dart::NativeArguments*) out/ReleaseTSANARM64/../../runtime/lib/date.cc:17:1 (dartvm+0x254aa9c)
    #4 dart::NativeEntry::BootstrapNativeCallWrapper(_Dart_NativeArguments*, void (*)(_Dart_NativeArguments*)) out/ReleaseTSANARM64/../../runtime/vm/native_entry.cc:150:37 (dartvm+0x2679d34) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #5 DRT_BootstrapNativeCall out/ReleaseTSANARM64/../../runtime/vm/native_entry.cc:117:3 (dartvm+0x2679cac) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #6 <null> <null> ([anon:dart-code]+0x371c)
    #7 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) out/ReleaseTSANARM64/../../runtime/vm/dart_entry.cc:41:10 (dartvm+0x25eb0bc) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #8 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) out/ReleaseTSANARM64/../../runtime/vm/dart_entry.cc:773:28 (dartvm+0x25eb0bc)
    #9 dart::IsolateMessageHandler::HandleMessage(std::_d::unique_ptr<dart::Message, std::_d::default_delete<dart::Message>>) out/ReleaseTSANARM64/../../runtime/vm/isolate.cc:1547:15 (dartvm+0x26219e0) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #10 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:229:16 (dartvm+0x265f914) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #11 dart::MessageHandler::TaskCallback() out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:443:18 (dartvm+0x265ff5c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #12 dart::MessageHandlerTask::Run() out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:31:15 (dartvm+0x2660514) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #13 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:207:15 (dartvm+0x27e6f44) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #14 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:367:9 (dartvm+0x27e7368) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #15 dart::ThreadStart(void*) out/ReleaseTSANARM64/../../runtime/vm/os_thread_linux.cc:97:5 (dartvm+0x276125c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)

  Thread T12 'DartWorker' (tid=19477, running) created by thread T11 at:
    #0 pthread_create ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1045:3 (dartvm+0x221c65c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #1 dart::OSThread::TryStart(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANARM64/../../runtime/vm/os_thread_linux.cc:116:12 (dartvm+0x276113c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #2 dart::OSThread::Start(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANARM64/../../runtime/vm/os_thread.cc:343:16 (dartvm+0x2760f28) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #3 dart::ThreadPool::Worker::StartThread() out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:337:3 (dartvm+0x27e67f8) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #4 dart::ThreadPool::RunImpl(std::_d::unique_ptr<dart::ThreadPool::Task, std::_d::default_delete<dart::ThreadPool::Task>>) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:130:17 (dartvm+0x27e67f8)
    #5 bool dart::ThreadPool::Run<dart::MessageHandlerTask, dart::MessageHandler*>(dart::MessageHandler*&&) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.h:48:12 (dartvm+0x265f3d8) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #6 dart::MessageHandler::Run(dart::ThreadPool*, dart::MessageHandler::MessageStatus (*)(unsigned long), void (*)(unsigned long), unsigned long) out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:111:24 (dartvm+0x265f3d8)
    #7 dart::Isolate::Run() out/ReleaseTSANARM64/../../runtime/vm/isolate.cc:2468:22 (dartvm+0x2625158) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #8 Dart_RunLoopAsync out/ReleaseTSANARM64/../../runtime/vm/dart_api_impl.cc:2098:12 (dartvm+0x2b2f170) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #9 dart::SpawnIsolateTask::Run(dart::Isolate*) out/ReleaseTSANARM64/../../runtime/lib/isolate.cc:905:10 (dartvm+0x2564850) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #10 dart::SpawnIsolateTask::RunLightweight(char const*) out/ReleaseTSANARM64/../../runtime/lib/isolate.cc:869:5 (dartvm+0x256420c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #11 dart::SpawnIsolateTask::Run() out/ReleaseTSANARM64/../../runtime/lib/isolate.cc:785:7 (dartvm+0x2563f70) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #12 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:207:15 (dartvm+0x27e6f44) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #13 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:367:9 (dartvm+0x27e7368) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #14 dart::ThreadStart(void*) out/ReleaseTSANARM64/../../runtime/vm/os_thread_linux.cc:97:5 (dartvm+0x276125c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)

  Thread T10 'DartWorker' (tid=19475, running) created by thread T9 at:
    #0 pthread_create ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1045:3 (dartvm+0x221c65c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #1 dart::OSThread::TryStart(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANARM64/../../runtime/vm/os_thread_linux.cc:116:12 (dartvm+0x276113c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #2 dart::OSThread::Start(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANARM64/../../runtime/vm/os_thread.cc:343:16 (dartvm+0x2760f28) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #3 dart::ThreadPool::Worker::StartThread() out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:337:3 (dartvm+0x27e67f8) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #4 dart::ThreadPool::RunImpl(std::_d::unique_ptr<dart::ThreadPool::Task, std::_d::default_delete<dart::ThreadPool::Task>>) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:130:17 (dartvm+0x27e67f8)
    #5 bool dart::ThreadPool::Run<dart::MessageHandlerTask, dart::MessageHandler*>(dart::MessageHandler*&&) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.h:48:12 (dartvm+0x265f3d8) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #6 dart::MessageHandler::Run(dart::ThreadPool*, dart::MessageHandler::MessageStatus (*)(unsigned long), void (*)(unsigned long), unsigned long) out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:111:24 (dartvm+0x265f3d8)
    #7 dart::Isolate::Run() out/ReleaseTSANARM64/../../runtime/vm/isolate.cc:2468:22 (dartvm+0x2625158) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #8 Dart_RunLoopAsync out/ReleaseTSANARM64/../../runtime/vm/dart_api_impl.cc:2098:12 (dartvm+0x2b2f170) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #9 dart::SpawnIsolateTask::Run(dart::Isolate*) out/ReleaseTSANARM64/../../runtime/lib/isolate.cc:905:10 (dartvm+0x2564850) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #10 dart::SpawnIsolateTask::RunLightweight(char const*) out/ReleaseTSANARM64/../../runtime/lib/isolate.cc:869:5 (dartvm+0x256420c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #11 dart::SpawnIsolateTask::Run() out/ReleaseTSANARM64/../../runtime/lib/isolate.cc:785:7 (dartvm+0x2563f70) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #12 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:207:15 (dartvm+0x27e6f44) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #13 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:367:9 (dartvm+0x27e7368) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)
    #14 dart::ThreadStart(void*) out/ReleaseTSANARM64/../../runtime/vm/os_thread_linux.cc:97:5 (dartvm+0x276125c) (BuildId: 960107f2ed44a81a9a62d0504102c9fde6e5ed6b)

SUMMARY: ThreadSanitizer: data race (/lib/aarch64-linux-gnu/libc.so.6+0xa8130) (BuildId: a10ee556ec5706640b27d9a9c346cb29e9516cec) 

log

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.gardeningsanitizerFound with sanitizer testing (ASAN, LSAN, MSAN, TSAN, UBSAN)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions