CASSANDRA-21342: Long-tail xref follow-up (cassandra-6.0)
Forward-merge of the trunk long-tail xref fix (commit cc97ee5332) to
cassandra-6.0. Twenty-six files updated; mechanical xref retargets and
three added [[anchor]] targets following the existing convention.
One conflict resolved: create-custom-index.adoc - took the trunk side
for both conflict blocks; the "For related information" line and the
collection-create/list/set bullet list now use
xref:cassandra:developing/cql/collections/...
Note: a separate broken xref at create-custom-index.adoc:58 remains on
cassandra-6.0 (out of scope here). It was fixed on trunk and
cassandra-5.0 by PR #4807 but appears to have been missed in the
forward-merge to cassandra-6.0. To be handled as a separate audit
follow-up.
patch by Patrick McFadin; reviewed by Mick Semb Wever for CASSANDRA-21342
CASSANDRA-21342: Long-tail xref follow-up (cassandra-5.0)
Forward-merge of the trunk long-tail xref fix (commit cc97ee5332) to
cassandra-5.0. Twenty-six files updated; mechanical xref retargets and
three added [[anchor]] targets following the existing convention.
One conflict resolved: architecture/index.adoc - kept 5.0's no-Accord
state with the snitch xref qualified to cassandra:managing/operating/.
patch by Patrick McFadin; reviewed by Mick Semb Wever for CASSANDRA-21342
CASSANDRA-21342: Long-tail xref follow-up (cassandra-4.1 subset)
Forward-merge of the cassandra-4.0 long-tail subset onto cassandra-4.1.
Same three files, same six edits as the 4.0 commit.
patch by Patrick McFadin; reviewed by Mick Semb Wever for CASSANDRA-21342
Subset of the trunk long-tail xref follow-up (commit cc97ee5332)
applicable to cassandra-4.0. Three files have broken patterns that
still apply on this branch after PR #4807's forward-merge: the
architecture index, finding_nodes, and use_tools self-page xrefs.
Six edits total. Mechanical retargets only; no prose was rewritten.
Edits omitted (trunk-only):
* Twenty files introduced in 5.0 or later (developing/cql/, reference/
cql-commands/, managing/operating/, etc).
* use_tools.adoc edits 4 and 5 (different line state on 4.x;
packet-capture anchor section structure differs).
patch by Patrick McFadin; reviewed by Mick Semb Wever for CASSANDRA-21342
Additional improvement: use a wait-free logic to return a task or work permit
patch by Dmitry Konstantinov; reviewed by Benedict Elliott Smith for CASSANDRA-21429
The build+test cells run in `ws("workspace/${JOB_NAME}/${BUILD_NUMBER}/${cell.step}/${cell.arch}/jdk-${cell.jdk}/python-${cell.python}")`, so every build writes a new per-build directory.
The `cleanWs()` only cleans the current cell's leaf, and it sat as the last statement in the `ws` block — so any cell hitting error() (failed/timed-out/aborted) exits before reaching it and leaves the full cell's workspace build behind.
patch by Mick Semb Wever; reviewed by Dmitry Konstantinov for CASSANDRA-20436
Additional fixes
- upgrade ubuntu-test.docker to ubuntu 22.04 (and some small fixes brought forward from CASSANDRA-20997)
- (.jenkins/k8s) changes gke's small node pool from n2-highcpu-8 to e2-highcpu-8 (gke's own pod resources reqs increased)
- (.jenkins/k8s) limit one agent pod per node (when jenkins is deployed in k8s using our helm)
- (.jenkins/k8s) add the cassandra-6.0 job
- pass maven.repo.local sys prop, if set, into accord's gradle build
- check and fail on maven dependencies checksums when downloading
- when on-the-fly building docker images add `--load` (podman compatbility)
- newer python versions can use venv instead of virtualenv
- rename ubuntu2004_test.docker to ubuntu-test.docker (in 5.0)
- (Jenkinsfile) fix retries (which was no longer working when agents/nodes died, since CASSANDRA-20833)
- (Jenkinsfile) @NonCPS where (now) needed
- (Jenkinsfile) fix default value for the branch parameter (after a new helm deploy)
- (.build/run-ci) fix missing parameters on jobs also at helm deploy time
- (.build/run-ci) .git suffixes on repo urls are optional
patch by Mick Semb Wever; reviewed by Dmitry Konstantinov, Stefan Miklosovic for CASSANDRA-21403
org.apache.cassandra.db.rows.RangeTombstoneMarker.Merger is allocated on demand
Optional usage in org.apache.cassandra.db.rows.UnfilteredRowIteratorWithLowerBound is replaced with a boolean field
Double in org.apache.cassandra.io.util.CompressedChunkReader#getCrcCheckChance - specialized supplier is used to avoid boxing
Stack - adjust default from 5 to 6 to avoid extra resizings in org.apache.cassandra.db.transform.Stack#resize
EnumSet for CL guardrail in SelectStatement - add a condition to allocate it only if the guardrail is enabled
EnumSet in ResultMetadata - replace it with plain int flags
patch by Dmitry Konstantinov; reviewed by Francisco Guerrero for CASSANDRA-21360
Current ReadCommand logic returns ArrayCell values, so when we retrieve a cell value as a ByteBuffer we allocate ByteBuffer instances
patch by Dmitry Konstantinov; reviewed by Francisco Guerrero for CASSANDRA-21362
The validation of snapshot names is turned off by default.
It is controlled by system property cassandra.snapshot.validation which is by default
set to false except 7.0 branch.
When the validation is turned on, the allowed characters are AWS safe characters together
with "+" character. A user can not specify any path separators in snapshot names even if
the validation as such is turned off.
patch by Stefan Miklosovic; reviewed by Francisco Guerrero, Matt Byrd for CASSANDRA-21389
COPY TO does not support control characters in text column values per
RFC 4180. This patch documents the limitation in the cqlsh reference,
including the security risks and alternative tools for data migration.
patch by Arvind Kandpal; reviewed by Brad Schoening, Stefan Miklosovic for CASSANDRA-21415
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>