Repository navigation
tentacle: fix build errors - #26
Merged
Merged
Conversation
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>
…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
merged commit Oct 14, 2026
fa77b46
into
tentacle-20.2.4-cobaltcore-storage
4 of 5 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes cobaltcore-dev/cloud-storage#601
Backport file
release-management/backports/<uuid>.mdadded (or updated) by this PRidin frontmatter matches the filename stemprovenance.upstream_prsset (orprovenance.type: otherwith another:block)Stage-B risk (filled per
release-management/backports/RISK-RUBRIC.md)blast— cosmetic / availability / data-lossconflict— clean / trivial / substantivecoverage— strong / partial / weakhighband)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-Idtrailer.