CommandClient has no attribute "test_authentication"

I am trying to set up a new worker on our network that will connect to our Cryosparc master node. We can initiate jobs, but they hang at startup. The event log gives this:

================= CRYOSPARCW =======  2022-10-12 20:39:00.928549  =========
Project P121 Job J115
Master node08.server.internal Port 39002
===========================================================================
========= monitor process now starting main process
MAINPROCESS PID 3462
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "cryosparc_worker/cryosparc_compute/run.py", line 170, in cryosparc_compute.run.run
  File "/opt/cryosparc-home/cryosparc_worker/cryosparc_compute/jobs/runcommon.py", line 98, in connect
    cli.test_authentication(project_uid, job_uid)
AttributeError: 'CommandClient' object has no attribute 'test_authentication'
Process Process-1:
Traceback (most recent call last):
  File "/opt/cryosparc-home/cryosparc_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/opt/cryosparc-home/cryosparc_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "cryosparc_worker/cryosparc_compute/run.py", line 32, in cryosparc_compute.run.main
  File "/opt/cryosparc-home/cryosparc_worker/cryosparc_compute/jobs/runcommon.py", line 98, in connect
    cli.test_authentication(project_uid, job_uid)
AttributeError: 'CommandClient' object has no attribute 'test_authentication'

Since we can successfully intitiate jobs, I don’t believe it’s an ssh error. Also, all firewalls are disabled, so the ports aren’t being blocked.

The server in question runs Ubuntu 22.04. Any help is appreciated.

– Kurt

@UCBKurt Welcome to the forum.

Are you referring to the new worker?
What version of CryoSPARC are you running?
What is the output of the command (run on the new worker)
curl node08.server.internal:39002
?

Hi @UCBKurt,

If your version of CryoSPARC is v4.0.1, can you please try restarting (cryosparcm restart)?
If it’s not v4.0.1, please update: cryosparcm update.

Hi @wtempel!

  1. Yes, I am referring to the new worker.
  2. We are running version 3.3.1 (We have the 4.0 upgrade set to be implemented in January)
  3. No output unless you add -v which gives out:
* Connected to node08.server.internal (10.0.52.17) port 39002 (#0)
> GET / HTTP/1.1
> Host: node08.server.internal:39002
> User-Agent: curl/7.81.0
> Accept: */*

@stephan Unfortunately, due to our policies, we cannot update as of yet, but plan to in January

Hi @UCBKurt ,

It seems like the worker version you’re trying to connect is v4.0.1, since it’s looking for a function that only exists in this version.
You might need to re-download the correct worker package by specifying the version in the download link.
curl -L https://get.cryosparc.com/download/worker-v3.3.1/$LICENSE_ID -o cryosparc_worker.tar.gz
After this is done you can install normally.

@stephan Thanks. I installed the 3.3.1 like you mentioned, but it seems like 3.3.1 cannot detect the GPUs. I get a pycuda error:

Traceback (most recent call last):
  File "bin/connect.py", line 221, in <module>
    gpu_devidxs = check_gpus()
  File "bin/connect.py", line 91, in check_gpus
    num_devs = print_gpu_list()
  File "bin/connect.py", line 23, in print_gpu_list
    import pycuda.driver as cudrv
  File "/cryosparc-worker/cryosparc_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/driver.py", line 62, in <module>
    from pycuda._driver import *  # noqa
ImportError: /cryosparc-worker/cryosparc_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/_driver.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZSt28__throw_bad_array_new_lengthv

4.0 worked, so is there a limit to the cuda version I can install?

There are several constraints that may need to be reconciled:

As of version 4, CryoSPARC can run on Ubuntu-22.04, but in that case, the master and other workers would also need to be at CryoSPARC version 4.

@wtempel Thanks for sending that thread over. It linking the system’s stdc++ lib fixed the issue and everything is working now