CryoSPARC v4.0.x and systemd failure

I upgraded a couple of our CryoSPARC installations to v4.0.1 and am unable to start CryoSPARC through the systemd service. I went through the instructions for creating both the cryosparc-env.service and cryosparc-supervisor.service files. It looks like the /run/cryosparc/env.txt file that is created by the cryosparc-env service doesn’t include all the environment variables that are needed. Here’s the error message that is logged to syslog:

cryosparcm[16993]: Error: Format string ‘MONGO_URL="%(ENV_CRYOSPARC_APP_MONGO_URI)s",MONGO_OPLOG_URL="%(ENV_CRYOSPARC_APP_MONGO_OPLOG_URI)s",NODE_ENV=“production”,PORT="%(ENV_CRYOSPARC_HTTP_APP_PORT)s"’ for ‘environment’ contains names (‘ENV_CRYOSPARC_APP_MONGO_URI’) which cannot be expanded. Available names: ENV_CONDA_DEFAULT_ENV, ENV_CONDA_EXE, ENV_CONDA_PREFIX, ENV_CONDA_PROMPT_MODIFIER, ENV_CONDA_PYTHON_EXE, ENV_CONDA_SHLVL, ENV_CRYOSPARC_BASE_PORT, ENV_CRYOSPARC_CLUSTER_JOB_MONITOR_INTERVAL, ENV_CRYOSPARC_CLUSTER_JOB_MONITOR_MAX_RETRIES, ENV_CRYOSPARC_COMMAND_CORE_PORT, ENV_CRYOSPARC_COMMAND_RTP_PORT, ENV_CRYOSPARC_COMMAND_VIS_PORT, ENV_CRYOSPARC_CONDA_ENV, ENV_CRYOSPARC_DB_CONNECTION_TIMEOUT_MS, ENV_CRYOSPARC_DB_ENABLE_AUTH, ENV_CRYOSPARC_DB_ENABLE_AUTH_FLAG, ENV_CRYOSPARC_DB_PATH, ENV_CRYOSPARC_DEVELOP, ENV_CRYOSPARC_FORCE_HOSTNAME, ENV_CRYOSPARC_FORCE_USER, ENV_CRYOSPARC_HEARTBEAT_SECONDS, ENV_CRYOSPARC_HOSTNAME_CHECK, ENV_CRYOSPARC_HTTP_APP_LEGACY_PORT, ENV_CRYOSPARC_HTTP_APP_PORT, ENV_CRYOSPARC_HTTP_LIVEAPP_LEGACY_PORT, ENV_CRYOSPARC_INSECURE, ENV_CRYOSPARC_LICENSE_ID, ENV_CRYOSPARC_LIVE_ENABLED, ENV_CRYOSPARC_MASTER_HOSTNAME, ENV_CRYOSPARC_MONGO_CACHE_GB, ENV_CRYOSPARC_MONGO_FCV, ENV_CRYOSPARC_MONGO_PORT, ENV_CRYOSPARC_PATH, ENV_CRYOSPARC_PROJECT_DIR_PREFIX, ENV_CRYOSPARC_ROOT_DIR, ENV_CRYOSPARC_SSD_CACHE_LIFETIME_DAYS, ENV_CRYOSPARC_SUPERVISOR_SOCK_FILE, ENV_HOME, ENV_INVOCATION_ID, ENV_JOURNAL_STREAM, ENV_LANG, ENV_LD_LIBRARY_PATH, ENV_LD_PRELOAD, ENV_LOGNAME, ENV_MKL_NUM_THREADS, ENV_NUMEXPR_NUM_THREADS, ENV_OLDPWD, ENV_OMP_NUM_THREADS, ENV_PATH, ENV_PIDFILE, ENV_PWD, ENV_PYTHONNOUSERSITE, ENV_PYTHONPATH, ENV_SHELL, ENV_SHLVL, ENV_USER, ENV__CE_CONDA, ENV__CE_M, group_name, here, host_node_name, numprocs, process_num, program_name in section ‘program:app’ (file: ‘{full path removed}/cryosparc2_master/supervisord.conf’)

Am I missing something? Or is there a bug in the install_services.sh script?

This is on an Ubuntu 20.04 server.

Thanks!
Steve

I had the same issue on Ubuntu 20.04. The problem seems to be that the CRYOSPARC_APP_MONGO_URI and CRYOSPARC_APP_MONGO_OPLOG_URI environment variables are missing in the /run/cryosparc/env.txt file. To get them, run in a terminal (possibly with started cryosparcm):

$ export CRYOSPARC_APP_MONGO_URI=$(python -c “from cryosparc_compute import database_management; print(database_management.get_mongo_uri(‘meteor’))”)

and

$ export CRYOSPARC_APP_MONGO_OPLOG_URI=$(python -c “from cryosparc_compute import database_management; print(database_management.get_mongo_uri(‘local’))”)

Then, get the variable values with:

$ env | grep MONGO

And copy and paste the two missing variables in the /run/cryosparc/env.txt. Then try starting the cryosparc-supervisor.service again (first stop cryosparcm if it is started). This fixed it for me.

Best wishes,

Rado

@Rado @stevew In CryoSPARC version 4.0.2 includes changes to systemd configuration.

1 Like