Skip to content

tentacle: fix build errors - #26

Merged
uw-sc merged 12 commits into
tentacle-20.2.4-cobaltcore-storagefrom
backport/601
Oct 14, 2026
Merged

uw-sc merged 12 commits into
tentacle-20.2.4-cobaltcore-storagefrom
backport/601

Conversation

@uw-sc

@uw-sc uw-sc commented Oct 12, 2026 •

Copy link
Copy Markdown

Closes cobaltcore-dev/cloud-storage#601

Backport file

  • release-management/backports/<uuid>.md added (or updated) by this PR
  • id in frontmatter matches the filename stem
  • provenance.upstream_prs set (or provenance.type: other with an other: block)

Stage-B risk (filled per release-management/backports/RISK-RUBRIC.md)

  • blast — cosmetic / availability / data-loss
  • conflict — clean / trivial / substantive
  • coverage — strong / partial / weak
  • Risk-notes paragraph in the prose section (required for high band)

Merge

Land this via just merge-backport PR=<N> — do not click the green merge button.
The just recipe constructs the merge commit's Backport-Id trailer.

djgalloway and others added 10 commits October 12, 2026 09:40
3e885ab ("mon/MonClient: add assertions for monc lock in
MonConnection") added a `ceph::mutex& monc_lock` reference member to
MonConnection, which makes the explicitly defaulted move assignment
operator implicitly deleted.  clang (-Wdefaulted-function-deleted,
promoted by -Werror) rejects that, so every make check / API build on
main fails since that merge:

  src/mon/MonClient.h:70:18: error: explicitly defaulted move assignment
  operator is implicitly deleted [-Werror,-Wdefaulted-function-deleted]

Nothing move-assigns a MonConnection (pending_cons/active_con only ever
move-construct), so spell out what the compiler already decided.

Fixes: 3e885ab
Signed-off-by: David Galloway <david.galloway@ibm.com>
Assisted-by: Claude Fable 5 (claude-fable-5)
(cherry picked from commit 79296fc)
(cherry picked from commit 3c86b2d)
The cephx upgrade suites added with the CVE-2025-30156 merge are missing
the .qa links in X/ms_bind, X/tasks/07-client-auth-keys,
X/tasks/08-allowed-ciphers and the release-X counterparts, so the
"Check for missing .qa links" workflow (src/script/verify-qa) fails on
every PR based on current main.  Add the links verify-qa asks for.

Signed-off-by: David Galloway <david.galloway@ibm.com>
Assisted-by: Claude Fable 5 (claude-fable-5)
(cherry picked from commit 62c4d50)
(cherry picked from commit 89e6482)
fae0d0d ("mgr/cephadm: rotate keyring for core ceph daemons during
upgrade") made _upgrade_daemons() call _rotate_mgr_mon_auth_keys() on
every pass.  That function indexes mon_daemons[0] unconditionally, and
with an empty mon list _detect_need_upgrade() reports no mons needing
upgrade, which is taken as "all mons upgraded" -- so it goes on to set
auth_allowed_ciphers and rotate mgr keys before crashing with

  IndexError: list index out of range
  cephadm/upgrade.py:1795

Since that merge four cephadm unit tests fail deterministically in
run_tox_mgr on every PR (test_upgrade_daemons_offline_hosts,
test_upgrade_run[False/True],
test_do_upgrade_limit_exhausted_marks_complete_without_scope_check);
they exercise the upgrade machinery without any mon daemons in the
cache.

Without any known mon daemons we cannot tell whether the mons have been
upgraded and there is no mon keyring to rotate, so skip the rotation for
this pass and let the next upgrade pass retry once the cache has mons.

Fixes: fae0d0d
Signed-off-by: David Galloway <david.galloway@ibm.com>
Assisted-by: Claude Fable 5 (claude-fable-5)
(cherry picked from commit fa100f0)
(cherry picked from commit d742bab)
0753b1d ("common/entity_name: dump type name as string") turned
STR_TO_ENTITY_TYPE into a vector of (entity_type_t, std::string) pairs
but left get_valid_types_as_str() streaming .first, i.e. the uint8_t
type value, so e.g. `ceph-conf --name total.garbage` now says

  valid types are:  , \x01, \x04, \x02, \x10, \x08

instead of "auth, mon, osd, mds, mgr, client", and the
src/test/cli/ceph-conf/invalid-args.t cram test fails in run-cli-tests.
Stream the name (.second).

Fixes: 0753b1d
Signed-off-by: David Galloway <david.galloway@ibm.com>
Assisted-by: Claude Fable 5 (claude-fable-5)
(cherry picked from commit 18e32fa)
(cherry picked from commit 36982bb)
The CVE-2025-30156 cephx merge (9633561) added a -t/--key-type
option to ceph-authtool, --auth-service-cipher/--auth-allowed-ciphers/
--auth-preferred-cipher options and auth_epoch/auth_*_cipher fields to
monmaptool, and the cephx_auth_aes256k mon feature bit, without
updating the cram expectations under src/test/cli, so run-cli-tests
fails on every PR.  Update the ten affected .t files with the output
the tools now produce.

Fixes: 9633561
Signed-off-by: David Galloway <david.galloway@ibm.com>
Assisted-by: Claude Fable 5 (claude-fable-5)
Conflicts:
	src/test/cli/monmaptool/feature-set-unset-list.t
	  The mon feature lists in the expected output are release-specific,
	  so the expectations were rebuilt from this branch's
	  src/mon/mon_types.h (inserting cephx_auth_aes256k(2147483648) before nvmeof_beacon_diff(4294967296) in tentacle's supported/persistent feature sets)
	  instead of taking main's lists.

(cherry picked from commit a935139)
(cherry picked from commit 7c4745b)
The cephx merge (9633561) left four unused local variables in
qa/tasks/ceph.py (key_prune/key_rotate/task) and an f-string without
placeholders plus an unused exception binding in qa/tasks/radosbench.py,
so run-tox-qa (flake8 --select=F,E9) fails on every PR.  No functional
change.

Fixes: 9633561
Signed-off-by: David Galloway <david.galloway@ibm.com>
Assisted-by: Claude Fable 5 (claude-fable-5)
(cherry picked from commit 297c44b)
(cherry picked from commit 4d90e67)
The OSD keyring rotation changes from the CVE-2025-30156 cephx merge
(c9bc85a "cephadm: restart OSD systemd unit after key rotation",
24dc65e "cephadm: Add retries to OSD key rotation") added lines to
cephadmlib/daemons/ceph.py that are not formatted the way
`tox -e check-black` (black>=23,<24, -l78) expects, so run-tox-cephadm
fails on every PR now that the py3 env passes again:

  would reformat /ceph/src/cephadm/cephadmlib/daemons/ceph.py
  1 file would be reformatted, 50 files would be left unchanged.

This is the output of `tox -e format-black` (black 23.12.1) on that
file; no functional change.

Fixes: 24dc65e
Signed-off-by: David Galloway <david.galloway@ibm.com>
Assisted-by: Claude Fable 5 (claude-fable-5)
(cherry picked from commit 6b206bc)
(cherry picked from commit 7fb3c92)
TestOSDMap.cc uses stringify() but never includes include/stringify.h;
until now it compiled via a transitive include that the CVE-2025-30156
cephx merge removed, so once the MonClient.h build break earlier in the
compile is fixed, make check dies here instead:

  src/test/osd/TestOSDMap.cc: error: use of undeclared identifier 'stringify'

main got the include from 0735848
("test: add missing includes", part of a 22-commit include-hygiene PR
that is not worth backporting wholesale), hence this branch-local
commit rather than a cherry-pick.

Signed-off-by: David Galloway <david.galloway@ibm.com>
Assisted-by: Claude Fable 5 (claude-fable-5)
(cherry picked from commit 01a873f)
Retarget test-ceph-custom.yml from the squid branches to the tentacle
ones: the pull_request trigger now matches
'tentacle-*-cobaltcore-storage', and the workflow_dispatch example
points at a tentacle branch.

Also remove any leftover ceph_build container before building. A job
that dies mid-build, for example when the runner is lost, leaves its
container behind. build-with-container.py always names the container
ceph_build, so every later run fails right away with "container name
ceph_build already in use". Running podman rm -f ceph_build first
clears it, and the podman ps line logs what was found.

Signed-off-by: Uwe Schwaeke <uwe.schwaeke@clyso.com>
Signed-off-by: Uwe Schwaeke <uwe.schwaeke@clyso.com>
@uw-sc uw-sc changed the title Backport/601 tentacle: fix build errors Oct 12, 2026
djgalloway and others added 2 commits October 13, 2026 06:23
…rade_complete

5eaf4db ("mgr/cephadm: mute key rotation related health warnings
during upgrade") brought a hunk of main's _mark_upgrade_complete() to
tentacle that belongs to the PG autoscaler feature added on main by
da4b361 ("mgr: Control PG autoscaler during upgrades with
pg_autoscale_during_upgrade"), which was never backported.  So tentacle
calls self._unset_noautoscale() and assigns
self.upgrade_state.noautoscale_set, neither of which exists here, and
run-tox-mgr fails for every tentacle PR:

  cephadm/upgrade.py: error: "CephadmUpgrade" has no attribute "_unset_noautoscale"  [attr-defined]
  cephadm/upgrade.py: error: "UpgradeState" has no attribute "noautoscale_set"  [attr-defined]

Nothing on tentacle ever sets noautoscale_set, so the getattr() guard is
always False and the block is dead code; drop it rather than backporting
the feature to a stable branch.

Signed-off-by: David Galloway <david.galloway@ibm.com>
Assisted-by: Claude Fable 5 (claude-fable-5)
(cherry picked from commit a3f44c1)
…telimit tests

The backport of "rgw: add rate limit for LIST & DELETE ops"
(512e930, cherry picked from dae572d) carried the qa test
hunk unchanged from main, where it still used the old
rgwadmin_rest(admin_conn, ...) call form. Tentacle's rgwadmin_rest()
takes (endpoint, creds, cmd, ...) and no admin_conn exists in task(),
so flake8 reports F821 undefined name 'admin_conn' and run-tox-qa
fails. The test cases would also raise NameError under teuthology.

Adapt the calls to rgwadmin_rest(endpoint, admin_creds, ...), as main
did in a7f557c ("qa/radosgw_admin_rest: replace boto2 with
boto3"). The resulting ratelimit test block is identical to main's.

Signed-off-by: Uwe Schwaeke <uwe.schwaeke@clyso.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@uw-sc
uw-sc merged commit fa77b46 into tentacle-20.2.4-cobaltcore-storage Oct 14, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants