Skip to content

tsan race tests/corelib/string_test in CodePatcher #62236

@aam

Description

@aam

logs

==================
WARNING: ThreadSanitizer: data race (pid=105083)
  Read of size 8 at 0x7fffd878f9e8 by thread T22:
    #0 dart::ObjectPtr dart::UntaggedObject::LoadPointer<dart::ObjectPtr>(dart::ObjectPtr const*) const out/ReleaseTSANX64/../../runtime/vm/raw_object.h:581:12 (dartvm+0x26ba938) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #1 dart::ObjectPtr dart::Object::LoadPointer<dart::ObjectPtr>(dart::ObjectPtr const*) const out/ReleaseTSANX64/../../runtime/vm/object.h:835:28 (dartvm+0x26ba938)
    #2 dart::ObjectPool::ObjectAt(long) const out/ReleaseTSANX64/../../runtime/vm/object.h:5732:12 (dartvm+0x26ba938)
    #3 dart::PoolPointerCall::Target() const out/ReleaseTSANX64/../../runtime/vm/code_patcher_x64.cc:269:26 (dartvm+0x26ba938)
    #4 dart::CodePatcher::GetStaticCallTargetAt(unsigned long, dart::Code const&) out/ReleaseTSANX64/../../runtime/vm/code_patcher_x64.cc:458:15 (dartvm+0x26ba938)
    #5 dart::DRT_HelperPatchStaticCall(dart::Isolate*, dart::Thread*, dart::Zone*, dart::NativeArguments) out/ReleaseTSANX64/../../runtime/vm/runtime_entry.cc:2192:7 (dartvm+0x289159c) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #6 DRT_PatchStaticCall out/ReleaseTSANX64/../../runtime/vm/runtime_entry.cc:2176:1 (dartvm+0x289159c)
    #7 <null> <null> (0x7ffff618404a)
    #8 StringBuffer._writeString dart:core-patch/string_buffer_patch.dart:66:5 
    #9 StringBuffer.write dart:core-patch/string_buffer_patch.dart:73:5 
    #10 testRepeat.testRepeat file:///b/s/w/ir/cache/builder/sdk/tests/corelib/string_test.dart:427:13 
    #11 testRepeat file:///b/s/w/ir/cache/builder/sdk/tests/corelib/string_test.dart:437:7 
    #12 main file:///b/s/w/ir/cache/builder/sdk/tests/corelib/string_test.dart:21:3 
    #13 wrapper1781.<anonymous closure> file:///b/s/w/ir/cache/builder/sdk/runtime/tests/concurrency/generated_stress_test.dart:40042:16 
    #14 _rootRun dart:async/zone_root.dart:35:13 
    #15 _rootRun dart:async/zone_root.dart:26:1 
    #16 _CustomZone.run dart:async/zone.dart:726:19 
    #17 _runZoned dart:async/zone_api.dart:166:6 
    #18 runZoned dart:async/zone_api.dart:92:10 
    #19 wrapper1781 file:///b/s/w/ir/cache/builder/sdk/runtime/tests/concurrency/generated_stress_test.dart:40040:3 
    #20 wrapper1781 file:///b/s/w/ir/cache/builder/sdk/runtime/tests/concurrency/generated_stress_test.dart:40038:1 
    #21 _Closure.call dart:core-patch/function.dart:1:1 
    #22 _delayEntrypointInvocation.<anonymous closure> dart:isolate-patch/isolate_patch.dart:317:17 
    #23 _Closure.call dart:core-patch/function.dart:1:1 
    #24 _RawReceivePort._handleMessage dart:isolate-patch/isolate_patch.dart:193:12 
    #25 dart-code-lookup-failed 00007ffff6184906 
    #26 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:41:10 (dartvm+0x26c2ddb) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #27 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:781:28 (dartvm+0x26c2ddb)
    #28 dart::IsolateMessageHandler::HandleMessage(std::_d::unique_ptr<dart::Message, std::_d::default_delete<dart::Message>>) out/ReleaseTSANX64/../../runtime/vm/isolate.cc:1561:15 (dartvm+0x26fe254) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #29 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:229:16 (dartvm+0x2741132) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #30 dart::MessageHandler::TaskCallback() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:443:18 (dartvm+0x27417b1) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #31 dart::MessageHandlerTask::Run() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31:15 (dartvm+0x2741db3) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #32 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:207:15 (dartvm+0x28f49c9) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #33 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:367:9 (dartvm+0x28f4f4f) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #34 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dartvm+0x285a206) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)

  Previous atomic write of size 8 at 0x7fffd878f9e8 by thread T16:
    #0 void std::_d::__cxx_atomic_store[abi:nn210000]<dart::ObjectPtr>(std::_d::__cxx_atomic_base_impl<dart::ObjectPtr>*, dart::ObjectPtr, std::_d::memory_order) out/ReleaseTSANX64/../../third_party/libcxx/include/__atomic/support/c11.h:68:3 (dartvm+0x26bb2ff) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #1 std::_d::__atomic_base<dart::ObjectPtr, false>::store[abi:nn210000](dart::ObjectPtr, std::_d::memory_order) out/ReleaseTSANX64/../../third_party/libcxx/include/__atomic/atomic.h:61:5 (dartvm+0x26bb2ff)
    #2 void dart::UntaggedObject::StorePointer<dart::ObjectPtr, (std::_d::memory_order)3>(dart::ObjectPtr const*, dart::ObjectPtr) out/ReleaseTSANX64/../../runtime/vm/raw_object.h:622:11 (dartvm+0x26bb2ff)
    #3 void dart::Object::StorePointer<dart::ObjectPtr, (std::_d::memory_order)3>(dart::ObjectPtr const*, dart::ObjectPtr) const out/ReleaseTSANX64/../../runtime/vm/object.h:848:21 (dartvm+0x26baaeb) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #4 void dart::ObjectPool::SetObjectAt<(std::_d::memory_order)3>(long, dart::Object const&) const out/ReleaseTSANX64/../../runtime/vm/object.h:5749:5 (dartvm+0x26baaeb)
    #5 dart::PoolPointerCall::SetTarget(dart::Code const&) const out/ReleaseTSANX64/../../runtime/vm/code_patcher_x64.cc:274:18 (dartvm+0x26baaeb)
    #6 dart::CodePatcher::PatchStaticCallAt(unsigned long, dart::Code const&, dart::Code const&) out/ReleaseTSANX64/../../runtime/vm/code_patcher_x64.cc:465:8 (dartvm+0x26baaeb)
    #7 dart::DRT_HelperFixCallersTarget(dart::Isolate*, dart::Thread*, dart::Zone*, dart::NativeArguments) out/ReleaseTSANX64/../../runtime/vm/runtime_entry.cc:4121:3 (dartvm+0x2896879) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #8 DRT_FixCallersTarget out/ReleaseTSANX64/../../runtime/vm/runtime_entry.cc:4098:1 (dartvm+0x2896879)
    #9 <null> <null> (0x7ffff618404a)
    #10 StringBuffer._writeString dart:core-patch/string_buffer_patch.dart:66:5 
    #11 StringBuffer.write dart:core-patch/string_buffer_patch.dart:73:5 
    #12 testRepeat.testRepeat file:///b/s/w/ir/cache/builder/sdk/tests/corelib/string_test.dart:427:13 
    #13 testRepeat file:///b/s/w/ir/cache/builder/sdk/tests/corelib/string_test.dart:437:7 
    #14 main file:///b/s/w/ir/cache/builder/sdk/tests/corelib/string_test.dart:21:3 
    #15 wrapper1781.<anonymous closure> file:///b/s/w/ir/cache/builder/sdk/runtime/tests/concurrency/generated_stress_test.dart:40042:16 
    #16 _rootRun dart:async/zone_root.dart:35:13 
    #17 _rootRun dart:async/zone_root.dart:26:1 
    #18 _CustomZone.run dart:async/zone.dart:726:19 
    #19 _runZoned dart:async/zone_api.dart:166:6 
    #20 runZoned dart:async/zone_api.dart:92:10 
    #21 wrapper1781 file:///b/s/w/ir/cache/builder/sdk/runtime/tests/concurrency/generated_stress_test.dart:40040:3 
    #22 wrapper1781 file:///b/s/w/ir/cache/builder/sdk/runtime/tests/concurrency/generated_stress_test.dart:40038:1 
    #23 _Closure.call dart:core-patch/function.dart:1:1 
    #24 _delayEntrypointInvocation.<anonymous closure> dart:isolate-patch/isolate_patch.dart:317:17 
    #25 _Closure.call dart:core-patch/function.dart:1:1 
    #26 _RawReceivePort._handleMessage dart:isolate-patch/isolate_patch.dart:193:12 
    #27 dart-code-lookup-failed 00007ffff6184906 
    #28 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:41:10 (dartvm+0x26c2ddb) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #29 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:781:28 (dartvm+0x26c2ddb)
    #30 dart::IsolateMessageHandler::HandleMessage(std::_d::unique_ptr<dart::Message, std::_d::default_delete<dart::Message>>) out/ReleaseTSANX64/../../runtime/vm/isolate.cc:1561:15 (dartvm+0x26fe254) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #31 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:229:16 (dartvm+0x2741132) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #32 dart::MessageHandler::TaskCallback() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:443:18 (dartvm+0x27417b1) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #33 dart::MessageHandlerTask::Run() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31:15 (dartvm+0x2741db3) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #34 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:207:15 (dartvm+0x28f49c9) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #35 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:367:9 (dartvm+0x28f4f4f) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #36 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dartvm+0x285a206) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)

  Thread T22 'DartWorker' (tid=105106, running) created by thread T21 at:
    #0 pthread_create ../../../../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1078:3 (dartvm+0x227e7ba) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #1 dart::OSThread::TryStart(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:116:12 (dartvm+0x285a0c5) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #2 dart::OSThread::Start(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANX64/../../runtime/vm/os_thread.cc:359:16 (dartvm+0x2859edf) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #3 dart::ThreadPool::Worker::StartThread() out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:337:3 (dartvm+0x28f4159) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #4 dart::ThreadPool::RunImpl(std::_d::unique_ptr<dart::ThreadPool::Task, std::_d::default_delete<dart::ThreadPool::Task>>) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:130:17 (dartvm+0x28f4159)
    #5 bool dart::ThreadPool::Run<dart::MessageHandlerTask, dart::MessageHandler*>(dart::MessageHandler*&&) out/ReleaseTSANX64/../../runtime/vm/thread_pool.h:48:12 (dartvm+0x2740ba6) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #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 (dartvm+0x2740ba6)
    #7 dart::Isolate::Run() out/ReleaseTSANX64/../../runtime/vm/isolate.cc:2470:22 (dartvm+0x2701d7c) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #8 Dart_RunLoopAsync out/ReleaseTSANX64/../../runtime/vm/dart_api_impl.cc:2102:12 (dartvm+0x2c9d7b4) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #9 dart::SpawnIsolateTask::Run(dart::Isolate*) out/ReleaseTSANX64/../../runtime/lib/isolate.cc:905:10 (dartvm+0x262dafe) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #10 dart::SpawnIsolateTask::RunLightweight(char const*) out/ReleaseTSANX64/../../runtime/lib/isolate.cc:869:5 (dartvm+0x262d3f0) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #11 dart::SpawnIsolateTask::Run() out/ReleaseTSANX64/../../runtime/lib/isolate.cc:785:7 (dartvm+0x262d12a) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #12 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:207:15 (dartvm+0x28f49c9) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #13 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:367:9 (dartvm+0x28f4f4f) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #14 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dartvm+0x285a206) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)

  Thread T16 'DartWorker' (tid=105100, running) created by thread T13 at:
    #0 pthread_create ../../../../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1078:3 (dartvm+0x227e7ba) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #1 dart::OSThread::TryStart(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:116:12 (dartvm+0x285a0c5) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #2 dart::OSThread::Start(char const*, void (*)(unsigned long), unsigned long) out/ReleaseTSANX64/../../runtime/vm/os_thread.cc:359:16 (dartvm+0x2859edf) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #3 dart::ThreadPool::Worker::StartThread() out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:337:3 (dartvm+0x28f4159) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #4 dart::ThreadPool::RunImpl(std::_d::unique_ptr<dart::ThreadPool::Task, std::_d::default_delete<dart::ThreadPool::Task>>) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:130:17 (dartvm+0x28f4159)
    #5 bool dart::ThreadPool::Run<dart::MessageHandlerTask, dart::MessageHandler*>(dart::MessageHandler*&&) out/ReleaseTSANX64/../../runtime/vm/thread_pool.h:48:12 (dartvm+0x2740ba6) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #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 (dartvm+0x2740ba6)
    #7 dart::Isolate::Run() out/ReleaseTSANX64/../../runtime/vm/isolate.cc:2470:22 (dartvm+0x2701d7c) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #8 Dart_RunLoopAsync out/ReleaseTSANX64/../../runtime/vm/dart_api_impl.cc:2102:12 (dartvm+0x2c9d7b4) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #9 dart::SpawnIsolateTask::Run(dart::Isolate*) out/ReleaseTSANX64/../../runtime/lib/isolate.cc:905:10 (dartvm+0x262dafe) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #10 dart::SpawnIsolateTask::RunLightweight(char const*) out/ReleaseTSANX64/../../runtime/lib/isolate.cc:869:5 (dartvm+0x262d3f0) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #11 dart::SpawnIsolateTask::Run() out/ReleaseTSANX64/../../runtime/lib/isolate.cc:785:7 (dartvm+0x262d12a) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #12 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:207:15 (dartvm+0x28f49c9) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #13 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:367:9 (dartvm+0x28f4f4f) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)
    #14 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dartvm+0x285a206) (BuildId: 784cabc0908151ec3be46ddd752f9b0828192650)

SUMMARY: ThreadSanitizer: data race out/ReleaseTSANX64/../../runtime/vm/raw_object.h:581:12 in dart::ObjectPtr dart::UntaggedObject::LoadPointer<dart::ObjectPtr>(dart::ObjectPtr const*) const
==================
Completed in 0:00:27.685178
=> Running "out/ReleaseTSANX64/dart --disable-dart-dev --profiler --sample_buffer_duration=57 --profile_period=8213 --verify_before_gc --no-profiler -Drepeat=4 -Dshard=53 -Dshards=64 runtime/tests/concurrency/generated_stress_test.dart.jit.dill" failed with -6
=> Possible crash 0 (pid: 105083)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.gardening

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions