I have cryosparc master/worker setup. The master is a linux machine with no GPUs and I have 5 GPU nodes setup as workers. I can run cryosparc normally/manually with no issues. when i try to run cryosparc live I get the following error…
Traceback (most recent call last):
File “/home/emproc/cryosparc3-1/cryosparc_worker/cryosparc_tools/cryosparc/command.py”, line 104, in func
with make_json_request(self, “/api”, data=data) as request:
File “/home/emproc/cryosparc3-1/cryosparc_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.8/contextlib.py”, line 113, in enter
return next(self.gen)
File “/home/emproc/cryosparc3-1/cryosparc_worker/cryosparc_tools/cryosparc/command.py”, line 191, in make_request
raise CommandClient.Error(client, error_reason, url=url)
cryosparc_tools.cryosparc.command.CommandClient.Error: *** CommandClient: (http://krios.csb.vanderbilt.edu:45005/api) URL Error [Errno 113] No route to host
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “cryosparc_master/cryosparc_compute/run.py”, line 96, in cryosparc_compute.run.main
File “cryosparc_master/cryosparc_compute/jobs/rtp_workers/run.py”, line 313, in cryosparc_compute.jobs.rtp_workers.run.rtp_worker
File “/home/emproc/cryosparc3-1/cryosparc_worker/cryosparc_compute/jobs/rtp_workers/rtp_common.py”, line 23, in get_rtp_cli
rtp = client.CommandClient(sysinfo[‘master_hostname’], int(sysinfo[‘port_command_rtp’]), service=“command_rtp”)
File “/home/emproc/cryosparc3-1/cryosparc_worker/cryosparc_compute/client.py”, line 36, in init
super().init(service, host, port, url, timeout, headers, cls=NumpyEncoder)
File “/home/emproc/cryosparc3-1/cryosparc_worker/cryosparc_tools/cryosparc/command.py”, line 91, in init
self._reload() # attempt connection immediately to gather methods
File “/home/emproc/cryosparc3-1/cryosparc_worker/cryosparc_tools/cryosparc/command.py”, line 118, in _reload
system = self._get_callable(“system.describe”)()
File “/home/emproc/cryosparc3-1/cryosparc_worker/cryosparc_tools/cryosparc/command.py”, line 107, in func
raise CommandClient.Error(
cryosparc_tools.cryosparc.command.CommandClient.Error: *** CommandClient: (http://krios.csb.vanderbilt.edu:45005) Did not receive a JSON response from method “system.describe” with params ()
When I setup cryosparc live the import shows the data are queued (ie cryosparc can find the data to import). The “live worker” jobs start but then almost immediately fail.
When I use cryosparc (non-live) I run the import through the master. It looks like cryosparc live runs the import through the worker GPU machine. So far this is the only difference I see and could help explain why running cryosparc works and cryosparc live does not.
Things I have done to troubleshoot
- All machines can ssh between each other without a password
- Ports 45000 to 45009 are open on both ends (at the Master and Worker)
What am I missing here?
-Scott