Skip to content

ceph-devstack -v doctor --fix fails on ubuntu 22.04 #51

Description

@kshtsk
$ ceph-devstack -v doctor --fix
> podman info
> sudo true
> test -e /dev/loop-control
> test -w /dev/loop-control
> cat /sys/fs/selinux/enforce
> uname
> bash -c . /etc/os-release && echo $ID
Podman version is too old for rootless native overlayfs (needs {podman_overlay_version})
> uname -r
> command -v fuse-overlayfs
Traceback (most recent call last):
  File "/home/ubuntu/.local/bin/ceph-devstack", line 10, in <module>
    sys.exit(main())
  File "/home/ubuntu/.local/share/uv/tools/ceph-devstack/lib/python3.10/site-packages/ceph_devstack/cli.py", line 61, in main
    sys.exit(asyncio.run(run()))
  File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/ubuntu/.local/share/uv/tools/ceph-devstack/lib/python3.10/site-packages/ceph_devstack/cli.py", line 50, in run
    if not await asyncio.gather(
  File "/home/ubuntu/.local/share/uv/tools/ceph-devstack/lib/python3.10/site-packages/ceph_devstack/requirements.py", line 273, in check_requirements
    result = result and await FuseOverlayfsPresence().evaluate()
  File "/home/ubuntu/.local/share/uv/tools/ceph-devstack/lib/python3.10/site-packages/ceph_devstack/requirements.py", line 27, in evaluate
    if await self.check() is True:
  File "/home/ubuntu/.local/share/uv/tools/ceph-devstack/lib/python3.10/site-packages/ceph_devstack/requirements.py", line 18, in check
    proc = await self.host.arun(self.check_cmd)
  File "/home/ubuntu/.local/share/uv/tools/ceph-devstack/lib/python3.10/site-packages/ceph_devstack/host.py", line 50, in arun
    return await self.cmd(
  File "/home/ubuntu/.local/share/uv/tools/ceph-devstack/lib/python3.10/site-packages/ceph_devstack/exec.py", line 80, in arun
    transport, protocol = await loop.subprocess_exec(
  File "/usr/lib/python3.10/asyncio/base_events.py", line 1681, in subprocess_exec
    transport = await self._make_subprocess_transport(
  File "/usr/lib/python3.10/asyncio/unix_events.py", line 207, in _make_subprocess_transport
    transp = _UnixSubprocessTransport(self, protocol, args, shell,
  File "/usr/lib/python3.10/asyncio/base_subprocess.py", line 36, in __init__
    self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
  File "/usr/lib/python3.10/asyncio/unix_events.py", line 799, in _start
    self._proc = subprocess.Popen(
  File "/usr/lib/python3.10/subprocess.py", line 971, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.10/subprocess.py", line 1863, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'command'

Claude is saying it is because the command -v is run without shell and suggested to use shutil.which or use workaround

$ cat > ~/.local/bin/command << 'EOF'
#!/bin/bash
builtin command "$@"
EOF
chmod +x ~/.local/bin/command

which worked for this

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions