Permission error upon starting V5

Hello all,

I’ve had an unexpected PC shutdown due to a high file load on a raid disk ( unrelated to cryosparc)

and since then i cant restart my cryosparc session.

here is the error message.

[image redacted]

i’m very confused as to why it referes to a file from a different software in a different user home dir.

Cryosparc was working fine before.

have a good day

Thanks @Yannlefrancois for your post.
Is it possible that

  1. you switched Linux user context from emmanuel to cryosparc_user?
  2. some user emmanuel’s user-specific environment was inherited during the context switch?
  3. cryosparc_user doesn’t have read access to
    /home/emmanuel/Software/ccp4-9/etc/cacert.pem
    

If that’s the case, you may want to choose a method that logs you in as cryosparc_user, but isolates you from emmanuel’s environment.
[I redacted one of the image files you posted because it revealed confidential information. Please do not post confidential information, such as your CryoSPARC license ID, on the forum,]

Hi
thank you for your answer,

I am switching user using su cryosparc_user i was unware there is no reason to my knowledge that it would inherit anything.
i tried logging of completly and logging in from the PC itself without switching user in terminal and it worked.

this is wierd any idea as to what might have caused it and how to fix it ?

sorry about the picture i’ll be more carefull nexttime

The environment may be controlled using su command options.

I have fix the issue in the main time.

if i connect to the user in this manner

su - user

instead of

su user

i do not have the problem

1 Like

I have a similar error. I can live with my workaround, but this info might help you debug.

When I log in with my user and then su to the cryosparc user, I get similar errors for any cryosparcm command (see example below). I do not get errors when I cd from the other users home to the cryosparc user home before running cryosparcm.

This occured first after the update to cryosparc 5.

$ cryosparcm status
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
CryoSPARC System master node installed at
/usr/local/cryosparc/cryosparc_master
Current CryoSPARC version: v5.0.0
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

╭───────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────╮
│ /usr/local/cryosparc/cryosparc_master/cli/cryosparcm.py:280 in status                                               │
│                                                                                                                     │
│    277 │   version()                                                                                                │
│    278 │   out.log(DIVIDER)                                                                                         │
│    279 │   out.log()                                                                                                │
│ ❱  280 │   if status := check_supervisor_status():                                                                  │
│    281 │   │   out.log("CryoSPARC process status:")                                                                 │
│    282 │   │   out.log()                                                                                            │
│    283 │   │   out.out(status)                                                                                      │
│                                                                                                                     │
│ ╭────────────────────────────────────────────── locals ───────────────────────────────────────────────╮             │
│ │                   core = <core.core.Core object at 0x7ff75b682780>                                  │             │
│ │ SUPERVISOR_CONFIG_PATH = PosixPath('/usr/local/cryosparc/cryosparc_master/config/supervisord.conf') │             │
│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯             │
│                                                                                                                     │
│ /usr/local/cryosparc/cryosparc_master/cli/supervisor.py:101 in check_supervisor_status                              │
│                                                                                                                     │
│    98 │   """                                                                                                       │
│    99 │   check_hostname()                                                                                          │
│   100 │                                                                                                             │
│ ❱ 101 │   _, output = processing.exec(                                                                              │
│   102 │   │   "supervisorctl",                                                                                      │
│   103 │   │   "-c",                                                                                                 │
│   104 │   │   config,                                                                                               │
│                                                                                                                     │
│ ╭─────────────────────────────────────── locals ───────────────────────────────────────╮                            │
│ │  config = PosixPath('/usr/local/cryosparc/cryosparc_master/config/supervisord.conf') │                            │
│ │ service = None                                                                       │                            │
│ ╰──────────────────────────────────────────────────────────────────────────────────────╯                            │
│                                                                                                                     │
│ /usr/local/cryosparc/cryosparc_master/core/processing.py:273 in exec                                                │
│                                                                                                                     │
│   270 │   │   stdout = stderr = outfile  # IO object                                                                │
│   271 │   core.logger.debug(f"Executing command: {program} {shlex.join(map(str, args))}")                           │
│   272 │   cmd = [program, *args]                                                                                    │
│ ❱ 273 │   proc = subprocess.Popen(cmd, stdout=stdout, stderr=stderr, close_fds=True, cwd=cwd,                       │
│   274 │                                                                                                             │
│   275 │   if asynchronous:                                                                                          │
│   276 │   │   return proc.pid                                                                                       │
│                                                                                                                     │
│ ╭──────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────╮ │
│ │           args = (                                                                                              │ │
│ │                  │   '-c',                                                                                      │ │
│ │                  │   PosixPath('/usr/local/cryosparc/cryosparc_master/config/supervisord.conf'),                │ │
│ │                  │   'status',                                                                                  │ │
│ │                  │   ''                                                                                         │ │
│ │                  )                                                                                              │ │
│ │   asynchronous = False                                                                                          │ │
│ │            cmd = [                                                                                              │ │
│ │                  │   'supervisorctl',                                                                           │ │
│ │                  │   '-c',                                                                                      │ │
│ │                  │   PosixPath('/usr/local/cryosparc/cryosparc_master/config/supervisord.conf'),                │ │
│ │                  │   'status',                                                                                  │ │
│ │                  │   ''                                                                                         │ │
│ │                  ]                                                                                              │ │
│ │ combine_stderr = True                                                                                           │ │
│ │            cwd = '.'                                                                                            │ │
│ │            env = {                                                                                              │ │
│ │                  │   'SHELL': '/bin/bash',                                                                      │ │
│ │                  │   'CRYOSPARC_MASTER_HOSTNAME': '192.168.1.9',                                                │ │
│ │                  │   'NUMEXPR_NUM_THREADS': '1',                                                                │ │
│ │                  │   'LC_ADDRESS': 'de_DE.UTF-8',                                                               │ │
│ │                  │   'LC_NAME': 'de_DE.UTF-8',                                                                  │ │
│ │                  │   'CRYOSPARC_INSECURE': 'false',                                                             │ │
│ │                  │   'LC_MONETARY': 'de_DE.UTF-8',                                                              │ │
│ │                  │   'EDITOR': 'emacs',                                                                         │ │
│ │                  │   'PWD': '/home2/it-admin',                                                                  │ │
│ │                  │   'LOGNAME': 'cryosparcuser',                                                                │ │
│ │                  │   ... +57                                                                                    │ │
│ │                  }                                                                                              │ │
│ │        outfile = None                                                                                           │ │
│ │        program = 'supervisorctl'                                                                                │ │
│ │         stderr = -2                                                                                             │ │
│ │         stdout = -1                                                                                             │ │
│ │        timeout = None                                                                                           │ │
│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                                     │
│ /usr/local/cryosparc/cryosparc_master/.pixi/envs/master/lib/python3.12/subprocess.py:1026 in __init__               │
│                                                                                                                     │
│   1023 │   │   │   │   │   self.stderr = io.TextIOWrapper(self.stderr,                                              │
│   1024 │   │   │   │   │   │   │   encoding=encoding, errors=errors)                                                │
│   1025 │   │   │                                                                                                    │
│ ❱ 1026 │   │   │   self._execute_child(args, executable, preexec_fn, close_fds,                                     │
│   1027 │   │   │   │   │   │   │   │   pass_fds, cwd, env,                                                          │
│   1028 │   │   │   │   │   │   │   │   startupinfo, creationflags, shell,                                           │
│   1029 │   │   │   │   │   │   │   │   p2cread, p2cwrite,                                                           │
│                                                                                                                     │
│ ╭─────────────────────────────────────────────── locals ────────────────────────────────────────────────╮           │
│ │               args = [                                                                                │           │
│ │                      │   'supervisorctl',                                                             │           │
│ │                      │   '-c',                                                                        │           │
│ │                      │   PosixPath('/usr/local/cryosparc/cryosparc_master/config/supervisord.conf'),  │           │
│ │                      │   'status',                                                                    │           │
│ │                      │   ''                                                                           │           │
│ │                      ]                                                                                │           │
│ │            bufsize = -1                                                                               │           │
│ │            c2pread = 4                                                                                │           │
│ │           c2pwrite = 5                                                                                │           │
│ │          close_fds = True                                                                             │           │
│ │      creationflags = 0                                                                                │           │
│ │                cwd = '.'                                                                              │           │
│ │           encoding = None                                                                             │           │
│ │                env = {                                                                                │           │
│ │                      │   'SHELL': '/bin/bash',                                                        │           │
│ │                      │   'CRYOSPARC_MASTER_HOSTNAME': '192.168.1.9',                                  │           │
│ │                      │   'NUMEXPR_NUM_THREADS': '1',                                                  │           │
│ │                      │   'LC_ADDRESS': 'de_DE.UTF-8',                                                 │           │
│ │                      │   'LC_NAME': 'de_DE.UTF-8',                                                    │           │
│ │                      │   'CRYOSPARC_INSECURE': 'false',                                               │           │
│ │                      │   'LC_MONETARY': 'de_DE.UTF-8',                                                │           │
│ │                      │   'EDITOR': 'emacs',                                                           │           │
│ │                      │   'PWD': '/home2/it-admin',                                                    │           │
│ │                      │   'LOGNAME': 'cryosparcuser',                                                  │           │
│ │                      │   ... +57                                                                      │           │
│ │                      }                                                                                │           │
│ │             errors = None                                                                             │           │
│ │            errread = -1                                                                               │           │
│ │           errwrite = 5                                                                                │           │
│ │         executable = None                                                                             │           │
│ │       extra_groups = None                                                                             │           │
│ │                  f = <_io.BufferedReader name=4>                                                      │           │
│ │                gid = None                                                                             │           │
│ │               gids = None                                                                             │           │
│ │              group = None                                                                             │           │
│ │            p2cread = -1                                                                               │           │
│ │           p2cwrite = -1                                                                               │           │
│ │           pass_fds = ()                                                                               │           │
│ │           pipesize = -1                                                                               │           │
│ │         preexec_fn = None                                                                             │           │
│ │      process_group = -1                                                                               │           │
│ │    restore_signals = True                                                                             │           │
│ │               self = <Popen: returncode: 255 args: ['supervisorctl', '-c', PosixPath('/usr/local/...> │           │
│ │              shell = False                                                                            │           │
│ │  start_new_session = False                                                                            │           │
│ │        startupinfo = None                                                                             │           │
│ │             stderr = -2                                                                               │           │
│ │              stdin = None                                                                             │           │
│ │             stdout = -1                                                                               │           │
│ │               text = None                                                                             │           │
│ │                uid = None                                                                             │           │
│ │              umask = -1                                                                               │           │
│ │ universal_newlines = None                                                                             │           │
│ │               user = None                                                                             │           │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯           │
│                                                                                                                     │
│ /usr/local/cryosparc/cryosparc_master/.pixi/envs/master/lib/python3.12/subprocess.py:1955 in _execute_child         │
│                                                                                                                     │
│   1952 │   │   │   │   │   if errno_num != 0:                                                                       │
│   1953 │   │   │   │   │   │   err_msg = os.strerror(errno_num)                                                     │
│   1954 │   │   │   │   │   if err_filename is not None:                                                             │
│ ❱ 1955 │   │   │   │   │   │   raise child_exception_type(errno_num, err_msg, err_filename)                         │
│   1956 │   │   │   │   │   else:                                                                                    │
│   1957 │   │   │   │   │   │   raise child_exception_type(errno_num, err_msg)                                       │
│   1958 │   │   │   │   raise child_exception_type(err_msg)                                                          │
│                                                                                                                     │
│ ╭───────────────────────────────────────────────── locals ──────────────────────────────────────────────────╮       │
│ │              args = [                                                                                     │       │
│ │                     │   'supervisorctl',                                                                  │       │
│ │                     │   '-c',                                                                             │       │
│ │                     │   PosixPath('/usr/local/cryosparc/cryosparc_master/config/supervisord.conf'),       │       │
│ │                     │   'status',                                                                         │       │
│ │                     │   ''                                                                                │       │
│ │                     ]                                                                                     │       │
│ │           c2pread = 4                                                                                     │       │
│ │          c2pwrite = 5                                                                                     │       │
│ │         close_fds = True                                                                                  │       │
│ │     creationflags = 0                                                                                     │       │
│ │               cwd = '.'                                                                                   │       │
│ │               env = {                                                                                     │       │
│ │                     │   'SHELL': '/bin/bash',                                                             │       │
│ │                     │   'CRYOSPARC_MASTER_HOSTNAME': '192.168.1.9',                                       │       │
│ │                     │   'NUMEXPR_NUM_THREADS': '1',                                                       │       │
│ │                     │   'LC_ADDRESS': 'de_DE.UTF-8',                                                      │       │
│ │                     │   'LC_NAME': 'de_DE.UTF-8',                                                         │       │
│ │                     │   'CRYOSPARC_INSECURE': 'false',                                                    │       │
│ │                     │   'LC_MONETARY': 'de_DE.UTF-8',                                                     │       │
│ │                     │   'EDITOR': 'emacs',                                                                │       │
│ │                     │   'PWD': '/home2/it-admin',                                                         │       │
│ │                     │   'LOGNAME': 'cryosparcuser',                                                       │       │
│ │                     │   ... +57                                                                           │       │
│ │                     }                                                                                     │       │
│ │          env_list = [                                                                                     │       │
│ │                     │   b'SHELL=/bin/bash',                                                               │       │
│ │                     │   b'CRYOSPARC_MASTER_HOSTNAME=192.168.1.9',                                         │       │
│ │                     │   b'NUMEXPR_NUM_THREADS=1',                                                         │       │
│ │                     │   b'LC_ADDRESS=de_DE.UTF-8',                                                        │       │
│ │                     │   b'LC_NAME=de_DE.UTF-8',                                                           │       │
│ │                     │   b'CRYOSPARC_INSECURE=false',                                                      │       │
│ │                     │   b'LC_MONETARY=de_DE.UTF-8',                                                       │       │
│ │                     │   b'EDITOR=emacs',                                                                  │       │
│ │                     │   b'PWD=/home2/it-admin',                                                           │       │
│ │                     │   b'LOGNAME=cryosparcuser',                                                         │       │
│ │                     │   ... +57                                                                           │       │
│ │                     ]                                                                                     │       │
│ │      err_filename = '.'                                                                                   │       │
│ │           err_msg = 'Permission denied'                                                                   │       │
│ │         errno_num = 13                                                                                    │       │
│ │      errpipe_data = bytearray(b'OSError:d:noexec:chdir')                                                  │       │
│ │      errpipe_read = 6                                                                                     │       │
│ │     errpipe_write = 7                                                                                     │       │
│ │           errread = -1                                                                                    │       │
│ │          errwrite = 5                                                                                     │       │
│ │    exception_name = bytearray(b'OSError')                                                                 │       │
│ │        executable = b'supervisorctl'                                                                      │       │
│ │   executable_list = (                                                                                     │       │
│ │                     │   b'/usr/local/cryosparc/cryosparc_master/deps/external/mongodb/bin/supervisorctl', │       │
│ │                     │   b'/usr/local/cryosparc/cryosparc_master/bin/supervisorctl',                       │       │
│ │                     │   b'/usr/local/cryosparc/cryosparc_master/.pixi/envs/master/bin/supervisorctl',     │       │
│ │                     │   b'/usr/local/cryosparc/WSem2/cryosparc_worker/deps/anaconda/bin/supervisorctl',   │       │
│ │                     │   b'/usr/local/cryosparc/cryosparc_master/bin/supervisorctl',                       │       │
│ │                     │   b'/usr/local/sbin/supervisorctl',                                                 │       │
│ │                     │   b'/usr/local/bin/supervisorctl',                                                  │       │
│ │                     │   b'/usr/sbin/supervisorctl',                                                       │       │
│ │                     │   b'/usr/bin/supervisorctl',                                                        │       │
│ │                     │   b'/sbin/supervisorctl',                                                           │       │
│ │                     │   ... +4                                                                            │       │
│ │                     )                                                                                     │       │
│ │       fds_to_keep = {7}                                                                                   │       │
│ │               gid = None                                                                                  │       │
│ │              gids = None                                                                                  │       │
│ │         hex_errno = bytearray(b'd')                                                                       │       │
│ │                 k = b'PYTHONWARNINGS'                                                                     │       │
│ │  low_fds_to_close = []                                                                                    │       │
│ │   orig_executable = 'supervisorctl'                                                                       │       │
│ │           p2cread = -1                                                                                    │       │
│ │          p2cwrite = -1                                                                                    │       │
│ │              part = b''                                                                                   │       │
│ │          pass_fds = ()                                                                                    │       │
│ │               pid = 964910                                                                                │       │
│ │        preexec_fn = None                                                                                  │       │
│ │     process_group = -1                                                                                    │       │
│ │   restore_signals = True                                                                                  │       │
│ │              self = <Popen: returncode: 255 args: ['supervisorctl', '-c', PosixPath('/usr/local/...>      │       │
│ │             shell = False                                                                                 │       │
│ │ start_new_session = False                                                                                 │       │
│ │       startupinfo = None                                                                                  │       │
│ │               sts = 65280                                                                                 │       │
│ │               uid = None                                                                                  │       │
│ │             umask = -1                                                                                    │       │
│ │                 v = 'ignore'                                                                              │       │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯       │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
PermissionError: [Errno 13] Permission denied: '.'

@niklas Please can you post the output of the command

namei -l /usr/local/cryosparc/cryosparc_master/.pixi/envs/master/bin/supervisorctl

here you go :slight_smile:

$ namei -l /usr/local/cryosparc/cryosparc_master/.pixi/envs/master/bin/supervisorctl
f: /usr/local/cryosparc/cryosparc_master/.pixi/envs/master/bin/supervisorctl
drwxr-xr-x root          root  /
drwxr-xr-x root          root  usr
drwxr-xr-x root          root  local
drwxr-xr-x cryosparcuser users cryosparc
drwxr-xr-x cryosparcuser users cryosparc_master
drwxr-xr-x cryosparcuser users .pixi
drwxr-xr-x cryosparcuser users envs
drwxr-xr-x cryosparcuser users master
drwxr-xr-x cryosparcuser users bin
-rwxr-xr-x cryosparcuser users supervisorctl

Hi @niklas @Yannlefrancois , this should be fixed as of the latest v5.0.3 update, please let us know if you see any similar errors. You may have to cd into your CryoSPARC installation directory to proceed with the update to avoid this error until the update is installed.

1 Like

Yes, thank you :slight_smile: The 5.0.3 update solved the issue.

As an additional note: When I tried to update, I got an error for all worker nodes (see below). The error occurred when updating to version 5.0.3 regardless of starting from 5.0.0, 5.0.1 or 5.0.2. The updates in between worked fine. Eventually, I logged into the worker nodes directly and ran the update there, that worked.

Example error message:

Installing update on worker node 192.168.1.44
Copying /usr/local/cryosparc/cryosparc_master/cryosparc_worker.tar.gz to 192.168.1.44:/usr/local/cryosparc/WSem4/cryosparc_worker/cryosparc_worker.tar.gz...
bash: line 1: cd: /usr/local/cryosparc/cryosparc_master: No such file or directory
✕ Unable to install update on 192.168.1.44 (exit code 1)

Thanks @niklas for this report. Noted.

Hi @niklas , thanks again for the additional note! We’ve fixed this issue in the latest CryoSPARC v5.0.4 update, the next time you update you should no longer have to manually update the workers. Please let us know if you run into any further issues with this.