Skip to content

Profiler/profiler data race #60804

Open
Open
@rmacnak-google

Description

@rmacnak-google
WARNING: ThreadSanitizer: data race (pid=50202)
  Write of size 4 at 0xffffebdc3aa8 by thread T22:
    #0 dart::Sample::set_head_sample(bool) out/ReleaseTSANARM64/../../runtime/vm/profiler.h:348:12 (dart+0x28944dc) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #1 dart::Sample::Clear() out/ReleaseTSANARM64/../../runtime/vm/profiler.h:228:5 (dart+0x28944dc)
    #2 dart::Sample::Init(long, long, unsigned long) out/ReleaseTSANARM64/../../runtime/vm/profiler.h:201:5 (dart+0x28944dc)
    #3 dart::SetupSample(dart::Thread*, bool, unsigned long) out/ReleaseTSANARM64/../../runtime/vm/profiler.cc:1249:11 (dart+0x28944dc)
    #4 dart::Profiler::SampleThread(dart::Thread*, dart::InterruptedThreadState const&) out/ReleaseTSANARM64/../../runtime/vm/profiler.cc:1423:7 (dart+0x28944dc)
    #5 dart::ThreadInterrupterLinux::ThreadInterruptSignalHandler(int, siginfo_t*, void*) out/ReleaseTSANARM64/../../runtime/vm/thread_interrupter_linux.cc:44:5 (dart+0x29103b4) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #6 __tsan::CallUserSignalHandler(__tsan::ThreadState*, bool, bool, int, __sanitizer::__sanitizer_siginfo*, void*) ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:2149:5 (dart+0x23534d0) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #7 dart::ConditionVariable::WaitMicros(dart::Mutex*, long) out/ReleaseTSANARM64/../../runtime/platform/synchronization_posix.cc:144:18 (dart+0x23e3bc4) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #8 dart::SafepointHandler::ExitSafepointUsingLock(dart::Thread*) out/ReleaseTSANARM64/../../runtime/vm/heap/safepoint.cc:289:3 (dart+0x29633e8) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #9 dart::Thread::ExitSafepointUsingLock() out/ReleaseTSANARM64/../../runtime/vm/thread.cc:1485:41 (dart+0x290f0a4) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #10 dart::Thread::ExitSafepointFromNative() out/ReleaseTSANARM64/../../runtime/vm/thread.h:1226:7 (dart+0x2c62ba0) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #11 dart::TransitionNativeToVM::TransitionNativeToVM(dart::Thread*) out/ReleaseTSANARM64/../../runtime/vm/heap/safepoint.h:438:10 (dart+0x2c62ba0)
    #12 Dart_NewInteger out/ReleaseTSANARM64/../../runtime/vm/dart_api_impl.cc:2667:3 (dart+0x2c62ba0)
    #13 dart::bin::Builtin_EventHandler_TimerMillisecondClock(_Dart_NativeArguments*) out/ReleaseTSANARM64/../../runtime/bin/eventhandler.cc:107:29 (dart+0x23e6750) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #14 dart::NativeEntry::AutoScopeNativeCallWrapperNoStackCheck(_Dart_NativeArguments*, void (*)(_Dart_NativeArguments*)) out/ReleaseTSANARM64/../../runtime/vm/native_entry.cc:218:7 (dart+0x27a7e10) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #15 dart::NativeEntry::AutoScopeNativeCallWrapper(_Dart_NativeArguments*, void (*)(_Dart_NativeArguments*)) out/ReleaseTSANARM64/../../runtime/vm/native_entry.cc:199:3 (dart+0x27a7d08) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #16 <null> <null> ([anon:dart-code]+0x3a1c)
    #17 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) out/ReleaseTSANARM64/../../runtime/vm/dart_entry.cc:38:10 (dart+0x2719554) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #18 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) out/ReleaseTSANARM64/../../runtime/vm/dart_entry.cc:734:28 (dart+0x2719554)
    #19 dart::IsolateMessageHandler::HandleMessage(std::_d::unique_ptr<dart::Message, std::_d::default_delete<dart::Message>>) out/ReleaseTSANARM64/../../runtime/vm/isolate.cc:1539:15 (dart+0x274ee64) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #20 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:229:16 (dart+0x278ce68) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #21 dart::MessageHandler::TaskCallback() out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:443:18 (dart+0x278d4b0) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #22 dart::MessageHandlerTask::Run() out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:31:15 (dart+0x278db14) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #23 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:207:15 (dart+0x291120c) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #24 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:367:9 (dart+0x2911630) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #25 dart::ThreadStart(void*) out/ReleaseTSANARM64/../../runtime/vm/os_thread_linux.cc:97:5 (dart+0x288d3d0) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)

  Previous write of size 4 at 0xffffebdc3aa8 by thread T12:
    #0 dart::Sample::SetContinuation(dart::Sample*) out/ReleaseTSANARM64/../../runtime/vm/profiler.h:336:12 (dart+0x2893920) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #1 dart::SampleBlock::ReserveSampleAndLink(dart::Sample*) out/ReleaseTSANARM64/../../runtime/vm/profiler.cc:816:13 (dart+0x2893920)
    #2 dart::ProfilerStackWalker::Append(unsigned long, unsigned long) out/ReleaseTSANARM64/../../runtime/vm/profiler.cc:163:44 (dart+0x2895b5c) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #3 dart::ProfilerDartStackWalker::walk() out/ReleaseTSANARM64/../../runtime/vm/profiler.cc:1093:12 (dart+0x289423c) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #4 dart::CollectSample(dart::Isolate*, bool, bool, dart::Sample*, dart::ProfilerNativeStackWalker*, dart::ProfilerDartStackWalker*, unsigned long, unsigned long, unsigned long, dart::ProfilerCounters*) out/ReleaseTSANARM64/../../runtime/vm/profiler.cc (dart+0x28949d0) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #5 dart::Profiler::SampleThread(dart::Thread*, dart::InterruptedThreadState const&) out/ReleaseTSANARM64/../../runtime/vm/profiler.cc:1468:3 (dart+0x2894850) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #6 dart::ThreadInterrupterLinux::ThreadInterruptSignalHandler(int, siginfo_t*, void*) out/ReleaseTSANARM64/../../runtime/vm/thread_interrupter_linux.cc:44:5 (dart+0x29103b4) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #7 __tsan::CallUserSignalHandler(__tsan::ThreadState*, bool, bool, int, __sanitizer::__sanitizer_siginfo*, void*) ../../../../../../llvm-llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:2149:5 (dart+0x23534d0) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #8 dart::SafepointMutexLocker::SafepointMutexLocker(dart::ThreadState*, dart::Mutex*) out/ReleaseTSANARM64/../../runtime/vm/lockers.cc:51:14 (dart+0x2789564) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #9 dart::SafepointMutexLocker::SafepointMutexLocker(dart::Mutex*) out/ReleaseTSANARM64/../../runtime/vm/lockers.h:248:9 (dart+0x28bbe50) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #10 dart::PatchableCallHandler::ResolveSwitchAndReturn(dart::Object const&) out/ReleaseTSANARM64/../../runtime/vm/runtime_entry.cc:2715:24 (dart+0x28bbe50)
    #11 dart::InlineCacheMissHandler(dart::Thread*, dart::Zone*, dart::GrowableArray<dart::Instance const*> const&, dart::ICData const&, dart::NativeArguments) out/ReleaseTSANARM64/../../runtime/vm/runtime_entry.cc:2815:11 (dart+0x28c389c) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #12 dart::DRT_HelperInlineCacheMissHandlerOneArg(dart::Isolate*, dart::Thread*, dart::Zone*, dart::NativeArguments) out/ReleaseTSANARM64/../../runtime/vm/runtime_entry.cc:2832:3 (dart+0x28bc2b8) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #13 dart::DRT_InlineCacheMissHandlerOneArg(dart::NativeArguments) out/ReleaseTSANARM64/../../runtime/vm/runtime_entry.cc:2826:1 (dart+0x28bc2b8)
    #14 <null> <null> ([anon:dart-code]+0x34b8)
    #15 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) out/ReleaseTSANARM64/../../runtime/vm/dart_entry.cc:38:10 (dart+0x2719554) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #16 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) out/ReleaseTSANARM64/../../runtime/vm/dart_entry.cc:734:28 (dart+0x2719554)
    #17 dart::IsolateMessageHandler::HandleMessage(std::_d::unique_ptr<dart::Message, std::_d::default_delete<dart::Message>>) out/ReleaseTSANARM64/../../runtime/vm/isolate.cc:1539:15 (dart+0x274ee64) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #18 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:229:16 (dart+0x278ce68) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #19 dart::MessageHandler::TaskCallback() out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:443:18 (dart+0x278d4b0) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #20 dart::MessageHandlerTask::Run() out/ReleaseTSANARM64/../../runtime/vm/message_handler.cc:31:15 (dart+0x278db14) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #21 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:207:15 (dart+0x291120c) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #22 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANARM64/../../runtime/vm/thread_pool.cc:367:9 (dart+0x2911630) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)
    #23 dart::ThreadStart(void*) out/ReleaseTSANARM64/../../runtime/vm/os_thread_linux.cc:97:5 (dart+0x288d3d0) (BuildId: 62f5c7b11389fb32afc448a56f5ceb9b4fa26b6a)

log

@bkonyi @derekxu16

Metadata

Metadata

Assignees

Labels

area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.sanitizerFound with sanitizer testing (ASAN, LSAN, MSAN, TSAN, UBSAN)triagedIssue has been triaged by sub teamtype-bugIncorrect behavior (everything from a crash to more subtle misbehavior)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions