Still present in 26.04 LTS, fixed in 26.10 — here is the measurement,
and a request for an SRU.

**Versions, checked in the archive today**

* `resolute` (26.04 LTS): `ceph 20.2.0-0ubuntu2.1`. The shipped
  `ceph-volume_20.2.0-0ubuntu2.1_all.deb` still contains
  `ExecStart=/bin/sh -c 'timeout $CEPH_VOLUME_TIMEOUT 
@CMAKE_INSTALL_PREFIX@/sbin/ceph-volume-systemd %i'`.
  Nothing newer is published for `resolute`, not even in `-proposed`.
* `stonking` (26.10) and `tenacious` (27.04): `ceph 20.2.4+ds1-0ubuntu1`. The 
same file in that
  package reads `/usr/sbin/ceph-volume-systemd`. Fixed.

**Upstream**: fixed by ceph/ceph#66861 (tentacle backport of #66670), merged 
2026-02-12. It adds
`ceph-volume@` to the `configure_file` loop in `systemd/CMakeLists.txt` and 
stops installing the
raw file, renaming it to `systemd/[email protected]`. That `.in` file 
exists from tag
`v20.2.1` onward, so `v20.2.0` — exactly what 26.04 ships — is the only 
Tentacle release carrying
the defect.

**Impact on a 26.04 LTS cluster**: no OSD comes back after a reboot, on any 
node, from the day it
was installed. `ceph-volume lvm create` is the documented way to create an OSD, 
and
`ceph-volume@lvm-<id>-<uuid>.service` is what brings it back at boot; with the 
placeholder that
unit exits 127 (`timeout: failed to execute process: No such file or 
directory`) before
`ceph-volume-systemd` ever runs. There is no fallback an operator can reach for:
`ceph-osd@<id>.service` is enabled `--runtime`, so its link lives under `/run` 
and is gone after a
boot; `ceph-osd.target` wants no instance and reports `active` regardless; and
`/var/lib/ceph/osd/ceph-<id>` is the tmpfs the activation mounts, so starting 
the daemon by hand
finds an empty directory and no keyring. On a six-node cluster, every power 
cycle left the
monitors, managers and metadata servers up and **0 of 6 OSDs**, i.e. the whole 
data path down
until a human intervened. Nothing in the OSD logs says why, because the OSD 
never started.

**Test case** (26.04, one OSD created with `ceph-volume lvm create`)

1. `systemctl cat [email protected] | grep ExecStart` → shows 
`@CMAKE_INSTALL_PREFIX@`.
2. Reboot the node.
3. `ceph osd tree` → the OSD is `down`, and
   `journalctl -b -u 'ceph-volume@*'` → `Main process exited, code=exited, 
status=127/n/a`.

With the fix, or the workaround below, step 3 reads
`Finished ceph-volume@lvm-<id>-<uuid>.service - Ceph Volume activation` and the 
OSD is `up` and
`in`.

**Workaround**, verified on six arm64 nodes running 26.04.1 and then verified 
across a full power
cycle of all six:

    mkdir -p /etc/systemd/system/[email protected]
    cat > /etc/systemd/system/[email protected]/override.conf <<'EOF'
    [Service]
    ExecStart=
    ExecStart=/bin/sh -c 'timeout $CEPH_VOLUME_TIMEOUT 
/usr/sbin/ceph-volume-systemd %i'
    EOF
    systemctl daemon-reload

The empty `ExecStart=` is required: `ExecStart` is a list-typed setting, so 
without it systemd
appends to the broken command instead of replacing it.

**Request**: could this be nominated for a 26.04 SRU? The delta is one line in 
the shipped unit,
or a cherry-pick of the upstream commit. As it stands, `ceph-volume lvm create` 
on an LTS release
produces OSDs that silently never survive a reboot, and the failure is 
invisible until the next
power cycle.

Bug #2160244, reported 2026-07-09, looks like the same defect and could be 
marked as a duplicate
of this one.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2167962

Title:
  [email protected] ships with unsubstituted @CMAKE_INSTALL_PREFIX@

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ceph/+bug/2167962/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to