-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Remove the limitation on the number of concurrently running mutators #54687
Comments
There's a set of different aspects we can document
|
It might not be goal to scale to 100s of cores, but neither it is a goal to make it impossible to discover why you hit a scalability issue. We would like to see Dart used more and more outside of client-side context - so it makes sense to avoid adding hidden limitations like this or at least make them easier to discover. |
@mraleph Yes, the list I wrote above is what we can/should document. We can of course phrase it differently and just point out it's due to a technical limitation. |
\cc @ericwindmill Just so you're aware of the discussion and possibilities here :) - Perhaps you have some thoughts too! |
I would like to repurpose this issue to investigate if we could simply lift this limitation. So I am retitling this accordingly. |
This prevents such an isolate from occupying one of the limited number of mutator slots and blocking other isolates in the same group from running. TEST=ci Bug: #51254 Bug: #54687 Bug: #57119 Change-Id: Ic04bbaa7f482d533ad0ecf2c6da17ea9f00c264e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/398927 Reviewed-by: Alexander Aprelev <[email protected]> Commit-Queue: Ryan Macnak <[email protected]>
… from a thread at a native safepoint. The thread whose slot was stolen will take the slow path attempting to exit its safepoint and wait to reacquire an active mutator slot. TEST=ci Bug: #54687 Change-Id: I49c4c12b38d38d7afa4df6b346c2a464f75ef6e0 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406404 Commit-Queue: Ryan Macnak <[email protected]> Reviewed-by: Alexander Aprelev <[email protected]>
@rmacnak-google , I posted about this with a reproduction over on the flutter repo. I see that your commit says it resolves this issue, but it was only committed last week. Is there a version of flutter/dart that I can switch to to verify your fix on my example repo? |
…instead of setting the thread pool to unlimited workers. TEST=ci (flaky resource exhaustion) Bug: #54687 Change-Id: I4ba7b6ae4d5ceb460c7db883c0733434ae76de19 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/410641 Reviewed-by: Martin Kustermann <[email protected]> Commit-Queue: Ryan Macnak <[email protected]> Reviewed-by: Alexander Aprelev <[email protected]>
We should decide what we want to do with the currently existing limitation on the number of concurrently running mutators.
We should either make it more known (e.g. document it) or we should remove it.
We could even add a runtime warning: when we are trying to enter isolate as a mutator and are waiting for too long due to the limit on the number of mutators - we should consider reporting this error.
I don't think the limitation itself is all that bad for mobile usages - because it does not make sense to spawn so many concurrently running isolates anyway, but it might be causing real issues to server side / batch uses of Dart.
/cc @mkustermann @aam @rmacnak-google @a-siva
The text was updated successfully, but these errors were encountered: