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

Failures on [vm/concurrency/debugger] Fix pool patching synchronization for lightweight isolates breakpoints. #45391

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

Comments

@aam
Copy link
Contributor

aam commented Mar 19, 2021

The tests

vm/dart_2/isolates/reload_many_isolates_live_and_die_test Timeout (expected Pass)

is failing on configurations

dartk-win-release-x64
--- Command "vm" (took 04:00.000015s):
set DART_CONFIGURATION=ReleaseX64 & set DART_SUPPRESS_WER=1 & set DART_CRASHPAD_HANDLER=C:\b\s\w\ir\out\ReleaseX64\crashpad_handler.exe & out\ReleaseX64\dart.exe --ignore-unrecognized-flags --packages=C:\b\s\w\ir\.packages C:\b\s\w\ir\runtime\tests\vm\dart_2\isolates\reload_many_isolates_live_and_die_test.dart

exit code:
null

diagnostics:
win_sdk_path not found

stdout:
Launching out\ReleaseX64\dart.exe --packages=.packages --snapshot-kind=kernel --snapshot=C:\b\s\w\itu485us\39358070\test.dart.0.dill C:\b\s\w\itu485us\39358070\test.dart
stdout: Info: Compiling with sound null safety
Launching out\ReleaseX64\dart.exe --packages=.packages --snapshot-kind=kernel --snapshot=C:\b\s\w\itu485us\39358070\test.dart.1.dill C:\b\s\w\itu485us\39358070\test.dart
stdout: Info: Compiling with sound null safety
Launching out\ReleaseX64\dart.exe --enable-vm-service:0 --disable-dart-dev --disable-service-auth-codes --enable-isolate-groups --experimental-enable-isolate-groups-jit file:///C:/b/s/w/itu485us/39358070/test.dart.0.dill
stdout: Observatory listening on http://127.0.0.1:49978/

--- Re-run this test:
python tools/test.py -n dartk-win-release-x64 vm/dart_2/isolates/reload_many_isolates_live_and_die_test
@aam aam added the area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. label Mar 19, 2021
@aam aam self-assigned this Mar 19, 2021
@aam
Copy link
Contributor Author

aam commented Mar 19, 2021

thread 1 IsolateGroup::ForEachIsolate attempts to grab isolates_lock inside of RunningWithStoppedMutators and gets deadlocked as another thread is stuck on exiting the safepoint after acquiring that lock.

thread 1

 	dart.exe!dart::Monitor::Wait(__int64 millis) Line 350	C++	Symbols loaded.
 	[Inline Frame] dart.exe!dart::MonitorLocker::Wait(__int64 millis) Line 173	C++	Symbols loaded.
 	[Inline Frame] dart.exe!dart::SafepointRwLock::TryEnterRead(bool can_block, bool *) Line 132	C++	Symbols loaded.
 	dart.exe!dart::SafepointRwLock::EnterRead() Line 117	C++	Symbols loaded.
 	[Inline Frame] dart.exe!dart::SafepointReadRwLocker::SafepointReadRwLocker(dart::ThreadState * thread_state, dart::SafepointRwLock * rw_lock) Line 416	C++	Symbols loaded.
 	dart.exe!dart::IsolateGroup::ForEachIsolate(std::function<void (dart::Isolate *)> function, bool at_safepoint) Line 2744	C++	Symbols loaded.
>	[Inline Frame] dart.exe!dart::CompileParsedFunctionHelper::Compile::<unnamed-tag>::operator()() Line 615	C++	Symbols loaded.
 	dart.exe!dart::LambdaCallable<`lambda at ../../runtime/vm/compiler/jit/compiler.cc:603:33'>::Call() Line 130	C++	Symbols loaded.
 	dart.exe!dart::IsolateGroup::RunWithStoppedMutatorsCallable(dart::Callable * single_current_mutator, dart::Callable * otherwise, bool use_force_growth_in_otherwise) Line 2791	C++	Symbols loaded.
 	[Inline Frame] dart.exe!dart::IsolateGroup::RunWithStoppedMutators(dart::CompileParsedFunctionHelper::Compile::<unnamed-tag> function, bool use_force_growth) Line 659	C++	Symbols loaded.
 	dart.exe!dart::CompileParsedFunctionHelper::Compile(dart::CompilationPipeline * pipeline) Line 645	C++	Symbols loaded.
 	dart.exe!dart::CompileFunctionHelper(dart::CompilationPipeline * pipeline, const dart::Function & function, volatile bool optimized, __int64 osr_id) Line 730	C++	Symbols loaded.
 	dart.exe!dart::Compiler::CompileFunction(dart::Thread * thread, const dart::Function & function) Line 860	C++	Symbols loaded.
 	dart.exe!dart::Function::EnsureHasCode() Line 9721	C++	Symbols loaded.
 	[Inline Frame] dart.exe!dart::DRT_HelperCompileFunction(dart::Isolate * isolate, dart::Thread * thread, dart::Zone * zone, dart::NativeArguments arguments) Line 231	C++	Symbols loaded.
 	dart.exe!dart::DRT_CompileFunction(dart::NativeArguments arguments) Line 211	C++	Symbols loaded.

thread 2:

 	dart.exe!dart::Monitor::Wait(__int64 millis) Line 350	C++	Symbols loaded.
 	[Inline Frame] dart.exe!dart::MonitorLocker::Wait(__int64 millis) Line 173	C++	Symbols loaded.
 	dart.exe!dart::SafepointHandler::ExitSafepointUsingLock(dart::Thread * T) Line 221	C++	Symbols loaded.
 	[Inline Frame] dart.exe!dart::Thread::ExitSafepoint() Line 847	C++	Symbols loaded.
 	[Inline Frame] dart.exe!dart::TransitionVMToBlocked::~TransitionVMToBlocked() Line 246	C++	Symbols loaded.
 	dart.exe!dart::SafepointRwLock::EnterWrite() Line 176	C++	Symbols loaded.
 	[Inline Frame] dart.exe!dart::SafepointWriteRwLocker::SafepointWriteRwLocker(dart::ThreadState * thread_state, dart::SafepointRwLock * rw_lock) Line 463	C++	Symbols loaded.
>	[Inline Frame] dart.exe!dart::IsolateGroup::UnregisterIsolate(dart::Isolate * isolate) Line 466	C++	Symbols loaded.
 	dart.exe!dart::Isolate::LowLevelCleanup(dart::Isolate * isolate) Line 2548	C++	Symbols loaded.
 	dart.exe!dart::Isolate::Shutdown() Line 2528	C++	Symbols loaded.
 	dart.exe!Dart_ShutdownIsolate() Line 1483	C++	Symbols loaded.
 	dart.exe!dart::MessageHandler::TaskCallback() Line 511	C++	Symbols loaded.
 	dart.exe!dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker * worker) Line 160	C++	Symbols loaded.
 	dart.exe!dart::ThreadPool::Worker::Main(unsigned __int64 args) Line 325	C++	Symbols loaded.
 	dart.exe!dart::ThreadEntry(void * data_ptr) Line 79	C++	Symbols loaded.
 	dart.exe!thread_start<unsigned int (__cdecl*)(void *),1>(void * const parameter) Line 97	C++	Symbols loaded.

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, and the AOT and JIT backends.
Projects
None yet
Development

No branches or pull requests

1 participant