-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
[new release] moonpool (0.4) #24306
[new release] moonpool (0.4) #24306
Conversation
2b48b25
to
b9c4276
Compare
So that's going to be interesting to debug. What machine does this run on? |
How many domains are the tests trying to create? It'll be running on a many core x86 machine in that first test, but may be running into cgroups resource limits. |
Potentially n-1, where n is recommended domain count. But this time it will create many more domains than that over the life time of the test, it just has at most n-1 alive at a time.
|
So this is quite puzzling. I tried on a c3.4xlarge instance and a friend tried on his M1, to no avail — the test always passes. Can it be the cgroup settings? |
It's very likely to do with cgroups restrictions in opam-repo-ci. /cc @mtelvers to perhaps shed light on this. |
This has been a real puzzle for me this afternoon, taking a long look a cgroup limits on the cluster workers, running the spec file on different workers, and getting some expert advice from @dra27. The test fails when |
I'm not sure where the bug lies, but the domains are never being joined. I was able to reproduce the failures very easily with a custom compiler with |
CHANGES: - add `Fut.{reify_error,bind_reify_error}` - full lifecycle for worker domains, where a domain will shutdown if no thread runs on it, after a short delay. - fix: generalize type of `create_arg` - perf: in `Bb_queue`, only signal condition on push if queue was empty
b9c4276
to
033df3b
Compare
Thank y'all again for the help! That was a tricky one :)
|
Pools of threads supported by a pool of domains
CHANGES:
add
Fut.{reify_error,bind_reify_error}
full lifecycle for worker domains, where a domain
will shutdown if no thread runs on it, after a
short delay.
fix: generalize type of
create_arg
perf: in
Bb_queue
, only signal condition on push if queue was empty