Skip to content

Data race in growth policy #61862

@rmacnak-google

Description

@rmacnak-google
WARNING: ThreadSanitizer: data race (pid=3338107)
  Write of size 8 at 0x726800000a40 by main thread:
    #0 dart::PageSpaceController::RecordUpdate(dart::SpaceUsage, dart::SpaceUsage, long, char const*) out/ReleaseTSANX64/../../runtime/vm/heap/pages.cc (dartvm+0x2901081) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #1 dart::PageSpaceController::EvaluateAfterLoading(dart::SpaceUsage) out/ReleaseTSANX64/../../runtime/vm/heap/pages.cc:1753:3 (dartvm+0x2901527) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #2 dart::PageSpace::EvaluateAfterLoading() out/ReleaseTSANX64/../../runtime/vm/heap/pages.h:187:28 (dartvm+0x2c8c2de) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #3 Dart_FinalizeLoading out/ReleaseTSANX64/../../runtime/vm/dart_api_impl.cc:6011:38 (dartvm+0x2c8c2de)
    #4 dart::bin::DartUtils::SetupCoreLibraries(bool, bool, bool, dart::bin::DartIoSettings const&) out/ReleaseTSANX64/../../runtime/bin/dartutils.cc:606:24 (dartvm+0x2c092ba) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #5 dart::bin::SetupCoreLibraries(_Dart_Isolate*, dart::bin::IsolateData*, bool, bool, char const**) out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:170:12 (dartvm+0x22ced1c) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #6 dart::bin::IsolateSetupHelper(_Dart_Isolate*, bool, char const*, char const*, bool, Dart_IsolateFlags*, char**, int*) out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:286:7 (dartvm+0x22ce5d1) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #7 dart::bin::CreateIsolateGroupAndSetupHelper(bool, char const*, char const*, char const*, char const*, Dart_IsolateFlags*, void*, char**, int*) out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:736:23 (dartvm+0x22cc441) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #8 dart::bin::RunMainIsolate(char const*, char const*, char const*, dart::bin::CommandLineOptions*) out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:991:26 (dartvm+0x22cbd6a) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #9 dart::bin::main(int, char**) out/ReleaseTSANX64/../../runtime/bin/main_impl.cc:1402:7 (dartvm+0x22cd22e) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #10 main out/ReleaseTSANX64/../../runtime/bin/main.cc:9:3 (dartvm+0x22cbc04) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)

  Previous read of size 8 at 0x726800000a40 by thread T3:
    #0 dart::PageSpaceController::ReachedSoftThreshold(dart::SpaceUsage) const out/ReleaseTSANX64/../../runtime/vm/heap/pages.cc:1613:40 (dartvm+0x29013ad) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #1 dart::PageSpace::ReachedSoftThreshold() const out/ReleaseTSANX64/../../runtime/vm/heap/pages.h:181:35 (dartvm+0x28e9a8b) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #2 dart::Heap::CheckConcurrentMarking(dart::Thread*, dart::GCReason, long) out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:631:22 (dartvm+0x28e9a8b)
    #3 dart::Scavenger::TryAllocateNewTLAB(dart::Thread*, long, bool) out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.cc:1764:12 (dartvm+0x290ee21) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #4 dart::Scavenger::TryAllocate(dart::Thread*, long) out/ReleaseTSANX64/../../runtime/vm/heap/scavenger.h:142:5 (dartvm+0x28e8513) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #5 dart::Heap::AllocateNew(dart::Thread*, long) out/ReleaseTSANX64/../../runtime/vm/heap/heap.cc:90:27 (dartvm+0x28e8513)
    #6 dart::Heap::Allocate(dart::Thread*, long, dart::Heap::Space) out/ReleaseTSANX64/../../runtime/vm/heap/heap.h:73:16 (dartvm+0x2726a7b) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #7 dart::Object::Allocate(long, long, dart::Heap::Space, bool, unsigned long, unsigned long) out/ReleaseTSANX64/../../runtime/vm/object.cc:2882:25 (dartvm+0x274f294) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #8 dart::OneByteString::ObjectPtrType dart::Object::Allocate<dart::OneByteString>(dart::Heap::Space, long) out/ReleaseTSANX64/../../runtime/vm/object.h:794:9 (dartvm+0x27aff38) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #9 dart::OneByteString::New(long, dart::Heap::Space) out/ReleaseTSANX64/../../runtime/vm/object.cc:25289:17 (dartvm+0x27aff38)
    #10 dart::String::FromUTF8(unsigned char const*, long, dart::Heap::Space) out/ReleaseTSANX64/../../runtime/vm/object.cc:24623:43 (dartvm+0x27aff38)
    #11 dart::kernel::TranslationHelper::DartString(dart::kernel::StringIndex, dart::Heap::Space) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_translation_helper.cc:327:32 (dartvm+0x2b8fb7e) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #12 dart::kernel::TranslationHelper::DartString(dart::kernel::StringIndex) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_translation_helper.h:112:12 (dartvm+0x2b9ee14) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #13 dart::kernel::TranslationHelper::DartMethodName(dart::kernel::NameIndex, dart::kernel::StringIndex) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_translation_helper.cc:479:18 (dartvm+0x2b9ee14)
    #14 dart::kernel::KernelReaderHelper::ReadNameAsMethodName() out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_translation_helper.cc (dartvm+0x2b9ee14)
    #15 dart::kernel::StreamingFlowGraphBuilder::BuildMethodInvocation(dart::TokenPosition*, bool) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc:2873:24 (dartvm+0x2b474fd) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #16 dart::kernel::StreamingFlowGraphBuilder::BuildExpression(dart::TokenPosition*) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc (dartvm+0x2b3e9d3) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #17 dart::kernel::StreamingFlowGraphBuilder::TranslateConditionForControl() out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc:1934:29 (dartvm+0x2b56582) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #18 dart::kernel::StreamingFlowGraphBuilder::BuildIfStatement(dart::TokenPosition*) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc:5450:28 (dartvm+0x2b52407) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #19 dart::kernel::StreamingFlowGraphBuilder::BuildStatement(dart::TokenPosition*) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc:1253:14 (dartvm+0x2b40e08) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #20 dart::kernel::StreamingFlowGraphBuilder::BuildBlock(dart::TokenPosition*) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc:4580:23 (dartvm+0x2b4f829) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #21 dart::kernel::StreamingFlowGraphBuilder::BuildStatement(dart::TokenPosition*) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc:1231:14 (dartvm+0x2b40eda) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #22 dart::kernel::StreamingFlowGraphBuilder::BuildFunctionBody(dart::Function const&, dart::LocalVariable*, bool) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc:684:13 (dartvm+0x2b42626) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #23 dart::kernel::StreamingFlowGraphBuilder::BuildGraphOfFunction(bool) out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc:844:7 (dartvm+0x2b432fe) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #24 dart::kernel::StreamingFlowGraphBuilder::BuildGraph() out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc:940:14 (dartvm+0x2b43b1c) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #25 dart::kernel::FlowGraphBuilder::BuildGraph() out/ReleaseTSANX64/../../runtime/vm/compiler/frontend/kernel_to_il.cc:818:46 (dartvm+0x2b65937) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #26 dart::Compiler::BuildFlowGraph(dart::Zone*, dart::ParsedFunction*, dart::ZoneGrowableArray<dart::ICData const*>*, long, bool) out/ReleaseTSANX64/../../runtime/vm/compiler/jit/compiler.cc:196:30 (dartvm+0x28d1073) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #27 dart::CompileParsedFunctionHelper::Compile() out/ReleaseTSANX64/../../runtime/vm/compiler/jit/compiler.cc:515:22 (dartvm+0x28d273c) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #28 dart::CompileFunctionHelper(dart::Function const&, bool, long) out/ReleaseTSANX64/../../runtime/vm/compiler/jit/compiler.cc:679:46 (dartvm+0x28d36a7) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #29 dart::Compiler::CompileOptimizedFunction(dart::Thread*, dart::Function const&, long) out/ReleaseTSANX64/../../runtime/vm/compiler/jit/compiler.cc:859:10 (dartvm+0x28d40a6) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #30 dart::BackgroundCompiler::Run() out/ReleaseTSANX64/../../runtime/vm/compiler/jit/compiler.cc:1096:7 (dartvm+0x28d4c5f) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #31 dart::BackgroundCompilerTask::Run() out/ReleaseTSANX64/../../runtime/vm/compiler/jit/compiler.cc:1057:46 (dartvm+0x28d5b33) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #32 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:207:15 (dartvm+0x28b4cd9) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #33 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:367:9 (dartvm+0x28b525f) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)
    #34 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:97:5 (dartvm+0x281ba26) (BuildId: 655a573719e1c13c2747bdca6149495d890210c5)

log

Metadata

Metadata

Labels

P2A bug or feature request we're likely to work onarea-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)vm-gcRelated to the VM's garbage collector

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions