-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
System.Threading.Tests.ThreadLocalTests.RunThreadLocalTest8_Values failing on Mono on SLES 12 AMD64 #43981
Comments
Apparently SUSE has some cgroup based limits on the number of threads that can be created. Which for some services is as low as 512. And for user accounts the limit is 12288 threads across all logins. https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12-SP2/#fate-320358 Unclear why only MonoVM is affected. Perhaps we spawn more threads? |
Just saw that this happened again in. @akoeplinger @steveisok can someone please take a look. |
@lambdageek Can you look further? |
(And can we disable the test against mono if it can't be fixed quickly? :) |
I think we should. |
Test was disabled with #44357, removing |
It looks like this is failing in release/5.0 where the test wasn't disabled. Should this be disabled there as well? |
This might be fixed by #44124 - we now throw a |
This is possibly fixed by dotnet#44124 Since that PR mono will throw a ThreadStartException instead of an ExecutionEngineException if thread creation fails. The threadpool already catches ThreadStartException and can deal with thread creation failure. Related to dotnet#43981
Failed in run runtime 20210121.44 Failed test : net6.0-Linux-Release-x64-Mono_release-SLES.12.Amd64.Open Error message:
|
Opened a PR to disable the test again: #47324 |
Ah interesting. This is a good stack trace: we're starting a long-running task by creating a new thread and it throws a @kouvel should the portable threadpool catch a ThreadStartException here: runtime/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/ThreadPoolTaskScheduler.cs Line 49 in c7fda3b
What happens on CoreCLR with the non-portable threadpool if you start 1000 long running tasks on SLES? |
This thread creation is not part of the thread pool. It probably shouldn't catch these exceptions, currently the thread pool catches the thread-start exception and OOM when creating worker threads but the consensus from discussion about that before was to let the exception propagate, even if it may crash the process, since that is more easily discoverable and recoverable than a hung state where a thread cannot be started for an extended amount of time.
Haven't tried on that system, but I believe thread creation failure would typically result in an OOM exception (that is when |
Runfo Tracking Issue: System.Threading.Tests.ThreadLocalTests.RunThreadLocalTest8_Values failing on Mono on SLES 12 AMD64
Build Result Summary
The text was updated successfully, but these errors were encountered: