-
-
Notifications
You must be signed in to change notification settings - Fork 719
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
Add zeroconf advertising to the scheduler #5012
base: main
Are you sure you want to change the base?
Conversation
Rerunning flaky test |
I've also opened dask-contrib/dask-ctl#10 which makes use of this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you want to test this on CI; if not why? we typically dump all our optional requirements in py3.9 environment to have at least one set with everything running. I'm not a huge fan of this but it beats not testing at all. thoughts?
Thanks @fjetter. I've added the dependency to the 3.9 environment and updated the config constant. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM once green-ish
Test failures here seem flaky, but this is happening a lot at the moment, noting down failures and rerunning to see if they happen consistently.
|
I've pulled in the latest changes from main and am running CI again. If everything goes ok I intend on merging this tomorrow. |
Most of these failures seem flaky except for one which is happening consistently in Python 3.9 only.
The dangling task is definitely related to the zeroconf dependency.
|
@jacobtomlinson, curious what the status is here? This seems like a useful addition. There are a few conflicts that have crept in. Though perhaps the flaky test was fixed in the interim |
black distributed
/flake8 distributed
/isort distributed
Adds support for zeroconf/bonjour/avahi where the scheduler will advertise itself on the local network via mdns service discovery. This is the same protocol devices like TVs, printers, etc advertise with for auto-setup.
I've made it optional here and not included
zeroconf
as a dependency, this will only happen if that package is installed, otherwise it will skip over this. I've also added a config option to explicitly disable.My primary motivation here is to have something more robust in
dask-ctl
for discoveringLocalCluster
services running on the same machine. Annoyingly if you run multiple schedulers with random high ports it gets a little tricky to find them in a cross-platform way. This change allows me to resolve that.This could also be expanded in the future to enable workers to discover a scheduler on the same network without having to explicitly know the IP address. This is predicated on mdns being enabled on the network which is very common on home and office LANs but probably not in datacentres/HPCs. More investigation is required.