dart-lang / sdk

The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
10.18k stars 1.57k forks source link

vm/dart/isolates/shared_test flakily fails on vm-reload-linux-release-x64 #56076

Closed aam closed 2 months ago

aam commented 3 months ago

Example failure https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/vm-reload-linux-release-x64/462/overview

--- Command "vm" (took 04:00.000480s):
DART_CONFIGURATION=ReleaseX64 out/ReleaseX64/dart --hot-reload-test-mode --sound-null-safety -Dtest_runner.configuration=vm-reload-linux-release-x64 --ignore-unrecognized-flags --packages=/b/s/w/ir/.dart_tool/package_config.json /b/s/w/ir/runtime/tests/vm/dart/isolates/shared_test.dart

exit code:
1

diagnostics:
Process list including children: [51982, 52062]
Trying to capture stack trace for pid 51982
PID 51982 - process
TID 51982:
#0  0x00007fa95c8f6376 pthread_cond_wait@@GLIBC_2.3.2
#1  0x0000560a227e2305 dart::Monitor::WaitMicros(long)
#2  0x0000560a227e2230 dart::Monitor::Wait(long)
#3  0x0000560a22a493fa Dart_RunLoop
#4  0x0000560a225d36cf dart::bin::RunMainIsolate(char const*, char const*, dart::bin::CommandLineOptions*)
#5  0x0000560a225d443a dart::bin::main(int, char**)
#6  0x0000560a225d343d main
#7  0x00007fa95c5ca083 __libc_start_main
#8  0x0000560a225cd5e9 _start
TID 51983:
#0  0x00007fa95c6c568e epoll_wait
#1  0x0000560a225dacd8 dart::bin::EventHandlerImplementation::Poll(unsigned long)
#2  0x0000560a22a41ba2 dart::bin::ThreadStart(void*)
#3  0x00007fa95c8ef609 start_thread
#4  0x00007fa95c6c5353 __clone
TID 52063:
#0  0x00007fa95c688c7f wait4
#1  0x0000560a225e1eb8 dart::bin::ExitCodeHandler::ExitCodeHandlerEntry(unsigned long)
#2  0x0000560a22a41ba2 dart::bin::ThreadStart(void*)
#3  0x00007fa95c8ef609 start_thread
#4  0x00007fa95c6c5353 __clone

Trying to capture stack trace for pid 52062
PID 52062 - process
TID 52062:
#0  0x00007fa754c22376 pthread_cond_wait@@GLIBC_2.3.2
#1  0x000055ecbd1a3305 dart::Monitor::WaitMicros(long)
#2  0x000055ecbd1a3230 dart::Monitor::Wait(long)
#3  0x000055ecbd40a3fa Dart_RunLoop
#4  0x000055ecbcf946cf dart::bin::RunMainIsolate(char const*, char const*, dart::bin::CommandLineOptions*)
#5  0x000055ecbcf9543a dart::bin::main(int, char**)
#6  0x000055ecbcf9443d main
#7  0x00007fa7548f6083 __libc_start_main
#8  0x000055ecbcf8e5e9 _start
TID 52064:
#0  0x00007fa7549f168e epoll_wait
#1  0x000055ecbcf9bcd8 dart::bin::EventHandlerImplementation::Poll(unsigned long)
#2  0x000055ecbd402ba2 dart::bin::ThreadStart(void*)
#3  0x00007fa754c1b609 start_thread
#4  0x00007fa7549f1353 __clone
TID 52074:
#0  0x00007fa754c26170 __lll_lock_wait
#1  0x00007fa754c1e0a3 __pthread_mutex_lock
#2  0x00007fa7541870fb
#3  0x00007fa74bb5e0bc
#4  0x00007fa74bb5debe
#5  0x00007fa74bb5dccf
#6  0x00007fa753a59558
#7  0x00007fa753a62bfe
#8  0x00007fa753a62ab5
#9  0x00007fa753a627a6
#10 0x00007fa753a6248d
#11 0x00007fa753a615dc
#12 0x00007fa753a60237
#13 0x00007fa753a5fd86
#14 0x00007fa753a5fbd2
#15 0x00007fa753a5f0cd
#16 0x00007fa753a5d82c
#17 0x00007fa753a5d6bb
#18 0x00007fa753a267de
#19 0x00007fa753a256b5
#20 0x00007fa7541834d6
#21 0x000055ecbd0da815 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&)
#22 0x000055ecbd0dc1d3 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&)
#23 0x000055ecbd0f952f dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#24 0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#25 0x000055ecbd11bd18 dart::MessageHandler::TaskCallback()
#26 0x000055ecbd218da7 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)
#27 0x000055ecbd219032 dart::ThreadPool::Worker::Main(unsigned long)
#28 0x000055ecbd1a2bf6 dart::ThreadStart(void*)
#29 0x00007fa754c1b609 start_thread
#30 0x00007fa7549f1353 __clone
TID 52092:
#0  0x00007fa754c22376 pthread_cond_wait@@GLIBC_2.3.2
#1  0x000055ecbd1a3305 dart::Monitor::WaitMicros(long)
#2  0x000055ecbd1a3230 dart::Monitor::Wait(long)
#3  0x000055ecbd2461e1 dart::SafepointHandler::ExitSafepointLocked(dart::Thread*, dart::MonitorLocker*, dart::SafepointLevel)
#4  0x000055ecbd2465b7 dart::SafepointHandler::BlockForSafepoint(dart::Thread*)
#5  0x000055ecbd0f816c dart::IsolateMessageHandler::HandleLibMessage(dart::Array const&)
#6  0x000055ecbd0f9503 dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#7  0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#8  0x000055ecbd11baa5 dart::MessageHandler::HandleOOBMessages()
#9  0x000055ecbd215a50 dart::Thread::HandleInterrupts()
#10 0x000055ecbd1e8d60 dart::DRT_InterruptOrStackOverflow(dart::NativeArguments)
#11 0x00007fa754183093
#12 0x00007fa74bb5f15f
#13 0x00007fa753a596bc
#14 0x00007fa753a62bfe
#15 0x00007fa753a62ab5
#16 0x00007fa753a627a6
#17 0x00007fa753a6248d
#18 0x00007fa753a615dc
#19 0x00007fa753a60237
#20 0x00007fa753a5fd86
#21 0x00007fa753a5fbd2
#22 0x00007fa753a5f0cd
#23 0x00007fa753a5d82c
#24 0x00007fa753a5d6bb
#25 0x00007fa753a267de
#26 0x00007fa753a256b5
#27 0x00007fa7541834d6
#28 0x000055ecbd0da815 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&)
#29 0x000055ecbd0dc1d3 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&)
#30 0x000055ecbd0f952f dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#31 0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#32 0x000055ecbd11bd18 dart::MessageHandler::TaskCallback()
#33 0x000055ecbd218da7 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)
#34 0x000055ecbd219032 dart::ThreadPool::Worker::Main(unsigned long)
#35 0x000055ecbd1a2bf6 dart::ThreadStart(void*)
#36 0x00007fa754c1b609 start_thread
#37 0x00007fa7549f1353 __clone
TID 52093:
#0  0x00007fa754c26170 __lll_lock_wait
#1  0x00007fa754c1e0a3 __pthread_mutex_lock
#2  0x00007fa7541870fb
#3  0x00007fa74bb5e0bc
#4  0x00007fa74bb5debe
#5  0x00007fa74bb5dccf
#6  0x00007fa753a59558
#7  0x00007fa753a62bfe
#8  0x00007fa753a62ab5
#9  0x00007fa753a627a6
#10 0x00007fa753a6248d
#11 0x00007fa753a615dc
#12 0x00007fa753a60237
#13 0x00007fa753a5fd86
#14 0x00007fa753a5fbd2
#15 0x00007fa753a5f0cd
#16 0x00007fa753a5d82c
#17 0x00007fa753a5d6bb
#18 0x00007fa753a267de
#19 0x00007fa753a256b5
#20 0x00007fa7541834d6
#21 0x000055ecbd0da815 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&)
#22 0x000055ecbd0dc1d3 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&)
#23 0x000055ecbd0f952f dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#24 0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#25 0x000055ecbd11bd18 dart::MessageHandler::TaskCallback()
#26 0x000055ecbd218da7 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)
#27 0x000055ecbd219032 dart::ThreadPool::Worker::Main(unsigned long)
#28 0x000055ecbd1a2bf6 dart::ThreadStart(void*)
#29 0x00007fa754c1b609 start_thread
#30 0x00007fa7549f1353 __clone
TID 52094:
#0  0x00007fa754c22376 pthread_cond_wait@@GLIBC_2.3.2
#1  0x000055ecbd1a3305 dart::Monitor::WaitMicros(long)
#2  0x000055ecbd1a3230 dart::Monitor::Wait(long)
#3  0x000055ecbd2461e1 dart::SafepointHandler::ExitSafepointLocked(dart::Thread*, dart::MonitorLocker*, dart::SafepointLevel)
#4  0x000055ecbd2465b7 dart::SafepointHandler::BlockForSafepoint(dart::Thread*)
#5  0x000055ecbd0f816c dart::IsolateMessageHandler::HandleLibMessage(dart::Array const&)
#6  0x000055ecbd0f9503 dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#7  0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#8  0x000055ecbd11baa5 dart::MessageHandler::HandleOOBMessages()
#9  0x000055ecbd215a50 dart::Thread::HandleInterrupts()
#10 0x000055ecbd1e8d60 dart::DRT_InterruptOrStackOverflow(dart::NativeArguments)
#11 0x00007fa754183093
#12 0x00007fa74bb5c25e
#13 0x00007fa753a596bc
#14 0x00007fa753a62bfe
#15 0x00007fa753a62ab5
#16 0x00007fa753a627a6
#17 0x00007fa753a6248d
#18 0x00007fa753a615dc
#19 0x00007fa753a60237
#20 0x00007fa753a5fd86
#21 0x00007fa753a5fbd2
#22 0x00007fa753a5f0cd
#23 0x00007fa753a5d82c
#24 0x00007fa753a5d6bb
#25 0x00007fa753a267de
#26 0x00007fa753a256b5
#27 0x00007fa7541834d6
#28 0x000055ecbd0da815 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&)
#29 0x000055ecbd0dc1d3 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&)
#30 0x000055ecbd0f952f dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#31 0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#32 0x000055ecbd11bd18 dart::MessageHandler::TaskCallback()
#33 0x000055ecbd218da7 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)
#34 0x000055ecbd219032 dart::ThreadPool::Worker::Main(unsigned long)
#35 0x000055ecbd1a2bf6 dart::ThreadStart(void*)
#36 0x00007fa754c1b609 start_thread
#37 0x00007fa7549f1353 __clone
TID 52095:
#0  0x00007fa754c22376 pthread_cond_wait@@GLIBC_2.3.2
#1  0x000055ecbd1a3305 dart::Monitor::WaitMicros(long)
#2  0x000055ecbd1a3230 dart::Monitor::Wait(long)
#3  0x000055ecbd2461e1 dart::SafepointHandler::ExitSafepointLocked(dart::Thread*, dart::MonitorLocker*, dart::SafepointLevel)
#4  0x000055ecbd2465b7 dart::SafepointHandler::BlockForSafepoint(dart::Thread*)
#5  0x000055ecbd0f816c dart::IsolateMessageHandler::HandleLibMessage(dart::Array const&)
#6  0x000055ecbd0f9503 dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#7  0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#8  0x000055ecbd11baa5 dart::MessageHandler::HandleOOBMessages()
#9  0x000055ecbd215a50 dart::Thread::HandleInterrupts()
#10 0x000055ecbd1e8d60 dart::DRT_InterruptOrStackOverflow(dart::NativeArguments)
#11 0x00007fa754183093
#12 0x00007fa74bb5e280
#13 0x00007fa74bb5dd64
#14 0x00007fa753a5976b
#15 0x00007fa753a62bfe
#16 0x00007fa753a62ab5
#17 0x00007fa753a627a6
#18 0x00007fa753a6248d
#19 0x00007fa753a615dc
#20 0x00007fa753a60237
#21 0x00007fa753a5fd86
#22 0x00007fa753a5fbd2
#23 0x00007fa753a5f0cd
#24 0x00007fa753a5d82c
#25 0x00007fa753a5d6bb
#26 0x00007fa753a267de
#27 0x00007fa753a256b5
#28 0x00007fa7541834d6
#29 0x000055ecbd0da815 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&)
#30 0x000055ecbd0dc1d3 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&)
#31 0x000055ecbd0f952f dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#32 0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#33 0x000055ecbd11bd18 dart::MessageHandler::TaskCallback()
#34 0x000055ecbd218da7 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)
#35 0x000055ecbd219032 dart::ThreadPool::Worker::Main(unsigned long)
#36 0x000055ecbd1a2bf6 dart::ThreadStart(void*)
#37 0x00007fa754c1b609 start_thread
#38 0x00007fa7549f1353 __clone
TID 52096:
#0  0x00007fa754c22376 pthread_cond_wait@@GLIBC_2.3.2
#1  0x000055ecbd1a3305 dart::Monitor::WaitMicros(long)
#2  0x000055ecbd1a3230 dart::Monitor::Wait(long)
#3  0x000055ecbd2461e1 dart::SafepointHandler::ExitSafepointLocked(dart::Thread*, dart::MonitorLocker*, dart::SafepointLevel)
#4  0x000055ecbd2465b7 dart::SafepointHandler::BlockForSafepoint(dart::Thread*)
#5  0x000055ecbd0f816c dart::IsolateMessageHandler::HandleLibMessage(dart::Array const&)
#6  0x000055ecbd0f9503 dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#7  0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#8  0x000055ecbd11baa5 dart::MessageHandler::HandleOOBMessages()
#9  0x000055ecbd215a50 dart::Thread::HandleInterrupts()
#10 0x000055ecbd1e8d60 dart::DRT_InterruptOrStackOverflow(dart::NativeArguments)
#11 0x00007fa754183093
#12 0x00007fa74bb5f85f
#13 0x00007fa753a596bc
#14 0x00007fa753a62bfe
#15 0x00007fa753a62ab5
#16 0x00007fa753a627a6
#17 0x00007fa753a6248d
#18 0x00007fa753a615dc
#19 0x00007fa753a60237
#20 0x00007fa753a5fd86
#21 0x00007fa753a5fbd2
#22 0x00007fa753a5f0cd
#23 0x00007fa753a5d82c
#24 0x00007fa753a5d6bb
#25 0x00007fa753a267de
#26 0x00007fa753a256b5
#27 0x00007fa7541834d6
#28 0x000055ecbd0da815 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&)
#29 0x000055ecbd0dc1d3 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&)
#30 0x000055ecbd0f952f dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#31 0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#32 0x000055ecbd11bd18 dart::MessageHandler::TaskCallback()
#33 0x000055ecbd218da7 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)
#34 0x000055ecbd219032 dart::ThreadPool::Worker::Main(unsigned long)
#35 0x000055ecbd1a2bf6 dart::ThreadStart(void*)
#36 0x00007fa754c1b609 start_thread
#37 0x00007fa7549f1353 __clone
TID 52097:
#0  0x00007fa754c26170 __lll_lock_wait
#1  0x00007fa754c1e0a3 __pthread_mutex_lock
#2  0x00007fa7541870fb
#3  0x00007fa74bb5e0bc
#4  0x00007fa74bb5debe
#5  0x00007fa74bb594bf
#6  0x00007fa753a5976b
#7  0x00007fa753a62bfe
#8  0x00007fa753a62ab5
#9  0x00007fa753a627a6
#10 0x00007fa753a6248d
#11 0x00007fa753a615dc
#12 0x00007fa753a60237
#13 0x00007fa753a5fd86
#14 0x00007fa753a5fbd2
#15 0x00007fa753a5f0cd
#16 0x00007fa753a5d82c
#17 0x00007fa753a5d6bb
#18 0x00007fa753a267de
#19 0x00007fa753a256b5
#20 0x00007fa7541834d6
#21 0x000055ecbd0da815 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&)
#22 0x000055ecbd0dc1d3 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&)
#23 0x000055ecbd0f952f dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#24 0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#25 0x000055ecbd11bd18 dart::MessageHandler::TaskCallback()
#26 0x000055ecbd218da7 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)
#27 0x000055ecbd219032 dart::ThreadPool::Worker::Main(unsigned long)
#28 0x000055ecbd1a2bf6 dart::ThreadStart(void*)
#29 0x00007fa754c1b609 start_thread
#30 0x00007fa7549f1353 __clone
TID 52099:
#0  0x00007fa754c227d1 pthread_cond_timedwait@@GLIBC_2.3.2
#1  0x000055ecbd1a32ef dart::Monitor::WaitMicros(long)
#2  0x000055ecbd1a3230 dart::Monitor::Wait(long)
#3  0x000055ecbd2460ab dart::SafepointHandler::LevelHandler::WaitUntilThreadsReachedSafepointLevel()
#4  0x000055ecbd24566c dart::SafepointHandler::SafepointThreads(dart::Thread*, dart::SafepointLevel)
#5  0x000055ecbd0fb124 dart::IsolateGroup::ReloadSources(dart::JSONStream*, bool, char const*, char const*, bool)
#6  0x000055ecbd1e8bea dart::DRT_InterruptOrStackOverflow(dart::NativeArguments)
#7  0x00007fa754183093
#8  0x00007fa74bb5f5bf
#9  0x00007fa753a596bc
#10 0x00007fa753a62bfe
#11 0x00007fa753a62ab5
#12 0x00007fa753a627a6
#13 0x00007fa753a6248d
#14 0x00007fa753a615dc
#15 0x00007fa753a60237
#16 0x00007fa753a5fd86
#17 0x00007fa753a5fbd2
#18 0x00007fa753a5f0cd
#19 0x00007fa753a5d82c
#20 0x00007fa753a5d6bb
#21 0x00007fa753a267de
#22 0x00007fa753a256b5
#23 0x00007fa7541834d6
#24 0x000055ecbd0da815 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&)
#25 0x000055ecbd0dc1d3 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&)
#26 0x000055ecbd0f952f dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#27 0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#28 0x000055ecbd11bd18 dart::MessageHandler::TaskCallback()
#29 0x000055ecbd218da7 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)
#30 0x000055ecbd219032 dart::ThreadPool::Worker::Main(unsigned long)
#31 0x000055ecbd1a2bf6 dart::ThreadStart(void*)
#32 0x00007fa754c1b609 start_thread
#33 0x00007fa7549f1353 __clone
TID 52100:
#0  0x00007fa754c22376 pthread_cond_wait@@GLIBC_2.3.2
#1  0x000055ecbd1a3305 dart::Monitor::WaitMicros(long)
#2  0x000055ecbd1a3230 dart::Monitor::Wait(long)
#3  0x000055ecbd2461e1 dart::SafepointHandler::ExitSafepointLocked(dart::Thread*, dart::MonitorLocker*, dart::SafepointLevel)
#4  0x000055ecbd2465b7 dart::SafepointHandler::BlockForSafepoint(dart::Thread*)
#5  0x000055ecbd0f816c dart::IsolateMessageHandler::HandleLibMessage(dart::Array const&)
#6  0x000055ecbd0f9503 dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#7  0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#8  0x000055ecbd11baa5 dart::MessageHandler::HandleOOBMessages()
#9  0x000055ecbd215a50 dart::Thread::HandleInterrupts()
#10 0x000055ecbd1e8d60 dart::DRT_InterruptOrStackOverflow(dart::NativeArguments)
#11 0x00007fa754183093
#12 0x00007fa753a22d43
#13 0x00007fa753a229f6
#14 0x00007fa753a225c7
#15 0x00007fa74bb5e726
#16 0x00007fa753a267de
#17 0x00007fa753a256b5
#18 0x00007fa7541834d6
#19 0x000055ecbd0da815 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&)
#20 0x000055ecbd0dc1d3 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&)
#21 0x000055ecbd0f952f dart::IsolateMessageHandler::HandleMessage(std::__2::unique_ptr<dart::Message, std::__2::default_delete<dart::Message> >)
#22 0x000055ecbd11b91a dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
#23 0x000055ecbd11bd18 dart::MessageHandler::TaskCallback()
#24 0x000055ecbd218da7 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)
#25 0x000055ecbd219032 dart::ThreadPool::Worker::Main(unsigned long)
#26 0x000055ecbd1a2bf6 dart::ThreadStart(void*)
#27 0x00007fa754c1b609 start_thread
#28 0x00007fa7549f1353 __clone

stdout:
unittest-suite-wait-for-done

--- Re-run this test:
python3 tools/test.py -n vm-reload-linux-release-x64 vm/dart/isolates/shared_test

Reason for the failure and timeout/hanging is that isolate that grabbed the mutex now sits at safepoint requested for reload, but some other isolate is waiting for a mutex, can't get to a safepoint check.

cc @mraleph

mraleph commented 3 months ago

Did we mark these functions as leaf accidentally? I would imagine that they should not be preventing threads from reaching safepoints.

aam commented 3 months ago

Reload safepoints are different from gc and deopt safepoints, so currently getting to those is impossible when in ffi call.

https://github.com/dart-lang/sdk/blob/efab897725c9d8001aa76721f3b7f733bbfdcba8/runtime/vm/heap/safepoint_test.cc#L688

a-siva commented 3 months ago

Marking P2 as this could be hit potentially by a user.

dcharkes commented 3 months ago

From flaky to timeout again:

https://dart-ci.appspot.com/log/vm-reload-rollback-linux-release-x64/vm-reload-rollback-linux-release-x64/477/vm/dart/isolates/shared_test

aam commented 2 months ago

Switched implementation away from using ffi.