Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flaky tsan crash in finding pending deopt with lightweight isolates #45168

Closed
mkustermann opened this issue Mar 3, 2021 · 1 comment
Closed
Assignees
Labels
area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends.

Comments

@mkustermann
Copy link
Member

From this log:



/=============================================================================================\
| vm/dart_2/isolates/reload_active_stack_test is new and failed (RuntimeError, expected Pass) |
\=============================================================================================/

--- Command "vm" (took 01:04.000187s):
DART_CONFIGURATION=ReleaseTSANX64 out/ReleaseTSANX64/dart --ignore-unrecognized-flags --packages=/b/s/w/ir/.packages /b/s/w/ir/runtime/tests/vm/dart_2/isolates/reload_active_stack_test.dart

exit code:
255

stdout:
Launching out/ReleaseTSANX64/dart --packages=.packages --snapshot-kind=kernel --snapshot=/b/s/w/itiR4cgF/GJELUA/test.dart.0.dill /b/s/w/itiR4cgF/GJELUA/test.dart
stdout: Info: Compiling with sound null safety
Launching out/ReleaseTSANX64/dart --packages=.packages --snapshot-kind=kernel --snapshot=/b/s/w/itiR4cgF/GJELUA/test.dart.1.dill /b/s/w/itiR4cgF/GJELUA/test.dart
stdout: Info: Compiling with sound null safety
Launching out/ReleaseTSANX64/dart --packages=.packages --snapshot-kind=kernel --snapshot=/b/s/w/itiR4cgF/GJELUA/test.dart.2.dill /b/s/w/itiR4cgF/GJELUA/test.dart
stdout: Info: Compiling with sound null safety
Launching out/ReleaseTSANX64/dart --enable-vm-service:0 --disable-dart-dev --disable-service-auth-codes --enable-isolate-groups --experimental-enable-isolate-groups-jit file:///b/s/w/itiR4cgF/GJELUA/test.dart.0.dill
stdout: [child-0] entering ready loop
stdout: [child-1] entering ready loop
stdout: [child-2] entering ready loop
stdout: [child-3] entering ready loop
stdout: [child-4] entering ready loop
stdout: Observatory listening on http://127.0.0.1:38141/
Reload file:///b/s/w/itiR4cgF/GJELUA/test.dart.1.dill (version: 0)
{
  "type": "ReloadReport",
  "success": true,
  "details": {
    "finalLibraryCount": 22,
    "receivedLibraryCount": 4,
    "receivedLibrariesBytes": 76392,
    "receivedClassesCount": 48,
    "receivedProceduresCount": 14,
    "savedLibraryCount": 18,
    "loadedLibraryCount": 4,
    "shapeChangeMappings": []
  }
}
stdout: throwing Done
...
stderr: ==================
stderr: WARNING: ThreadSanitizer: data race (pid=26967)
stderr:   Write of size 8 at 0x7b0800004020 by thread T7:
stderr:     #0 memcpy ../recipe_cleanup/clangshYTOG/llvm_build_dir/tools/clang/stage2-bins/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:812 (dart+0x1b1bb3e)
stderr:     #1 dart::BaseGrowableArray<dart::PendingLazyDeopt, dart::MallocAllocated, dart::Malloc>::Swap(long, long) ../../out/ReleaseTSANX64/../../runtime/platform/growable_array.h:148 (dart+0x1e5353b)
stderr:     #2 dart::BaseGrowableArray<dart::PendingLazyDeopt, dart::MallocAllocated, dart::Malloc>::RemoveAt(long) ../../out/ReleaseTSANX64/../../runtime/platform/growable_array.h:158 (dart+0x1e5353b)
stderr:     #3 dart::Isolate::ClearPendingDeoptsAtOrBelow(unsigned long) const ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:2951 (dart+0x1e5353b)
stderr:     #4 DLRT_DeoptimizeCopyFrame ../../out/ReleaseTSANX64/../../runtime/vm/runtime_entry.cc:3104 (dart+0x203c6e2)
stderr:     #5 <null> <null> (memfd:dart-codespace (deleted)+0x2afe)
stderr:     #6 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:147 (dart+0x1dff21b)
stderr:     #7 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:37 (dart+0x1e03532)
stderr:     #8 dart::DartLibraryCalls::HandleMessage(dart::Object const&, dart::Instance const&) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:792 (dart+0x1e03532)
stderr:     #9 dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >) ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:1433 (dart+0x1e4c6d7)
stderr:     #10 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:233 (dart+0x1e991b0)
stderr:     #11 dart::MessageHandler::TaskCallback() ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:443 (dart+0x1e99bb4)
stderr:     #12 dart::MessageHandlerTask::Run() ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31 (dart+0x1e9a653)
stderr:     #13 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:158 (dart+0x209191c)
stderr:     #14 dart::ThreadPool::Worker::Main(unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:323 (dart+0x2092305)
stderr:     #15 dart::ThreadStart(void*) ../../out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:153 (dart+0x1f98c22)
stderr:
stderr:   Previous read of size 8 at 0x7b0800004020 by thread T10:
stderr:     #0 dart::PendingLazyDeopt::fp() ../../out/ReleaseTSANX64/../../runtime/vm/isolate.h:102 (dart+0x1e52d28)
stderr:     #1 dart::IsolateGroup::FindPendingDeoptAtSafepoint(unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:2863 (dart+0x1e52d28)
stderr:     #2 dart::StackFrame::GetCallerPc() const ../../out/ReleaseTSANX64/../../runtime/vm/stack_frame.h:146 (dart+0x2072bb0)
stderr:     #3 dart::StackFrameIterator::FrameSetIterator::NextFrame(bool) ../../out/ReleaseTSANX64/../../runtime/vm/stack_frame.cc:643 (dart+0x2072bb0)
stderr:     #4 dart::StackFrameIterator::NextFrame() ../../out/ReleaseTSANX64/../../runtime/vm/stack_frame.cc:605 (dart+0x2072bb0)
stderr:     #5 dart::DartFrameIterator::NextFrame() ../../out/ReleaseTSANX64/../../runtime/vm/stack_frame.h:349 (dart+0x203c556)
stderr:     #6 DLRT_DeoptimizeCopyFrame ../../out/ReleaseTSANX64/../../runtime/vm/runtime_entry.cc:3077 (dart+0x203c556)
stderr:     #7 <null> <null> (memfd:dart-codespace (deleted)+0x2afe)
stderr:     #8 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:147 (dart+0x1dff21b)
stderr:     #9 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:37 (dart+0x1e03532)
stderr:     #10 dart::DartLibraryCalls::HandleMessage(dart::Object const&, dart::Instance const&) ../../out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:792 (dart+0x1e03532)
stderr:     #11 dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >) ../../out/ReleaseTSANX64/../../runtime/vm/isolate.cc:1433 (dart+0x1e4c6d7)
stderr:     #12 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:233 (dart+0x1e991b0)
stderr:     #13 dart::MessageHandler::TaskCallback() ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:443 (dart+0x1e99bb4)
stderr:     #14 dart::MessageHandlerTask::Run() ../../out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31 (dart+0x1e9a653)
stderr:     #15 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:158 (dart+0x209191c)
stderr:     #16 dart::ThreadPool::Worker::Main(unsigned long) ../../out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:323 (dart+0x2092305)
stderr:     #17 dart::ThreadStart(void*) ../../out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:153 (dart+0x1f98c22)
stderr:
...
--- Re-run this test:
python tools/test.py -n dartk-tsan-linux-release-x64 vm/dart_2/isolates/reload_active_stack_test
@mkustermann mkustermann added the area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends. label Mar 3, 2021
@mkustermann mkustermann self-assigned this Mar 3, 2021
@mkustermann
Copy link
Member Author

I think this will be fixed by cl/188521

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends.
Projects
None yet
Development

No branches or pull requests

1 participant