Skip to content

Merge upstream changes from 4.19.0 to 4.19.1#828

Draft
dkropachev wants to merge 16 commits intoscylladb:scylla-4.xfrom
dkropachev:merge-upstream-4.19.1
Draft

Merge upstream changes from 4.19.0 to 4.19.1#828
dkropachev wants to merge 16 commits intoscylladb:scylla-4.xfrom
dkropachev:merge-upstream-4.19.1

Conversation

@dkropachev
Copy link

Summary

Cherry-picks upstream Apache Cassandra Java Driver changes from 4.19.0 to 4.19.1 into scylla-4.x.

Upstream PRs included

Status Upstream Commit(s) PR Description
✅ Cherry-picked 53bb5c8b65, c9facc3c36 N/A CASSJAVA-68: Improve DefaultCodecRegistry.CacheKey#hashCode() to eliminate Object[] allocation
✅ Cherry-picked bb9bb11e57 N/A Add SubnetAddressTranslator for translating Cassandra node IPs based on subnet masks
✅ Cherry-picked ddd6f03d71 #2028 Remove unnecessary locking in DefaultNettyOptions
✅ Cherry-picked f32069bd8a #2029 CASSJAVA-89: Support schema options changed in Cassandra 5.0
✅ Cherry-picked 7e21eb2028 #2025 Eliminate lock in ConcurrencyLimitingRequestThrottler
✅ Cherry-picked ff2d7f26c6 #2036 CASSJAVA-92: Local DC provided for nodetool clientstats
✅ Cherry-picked e2c7ad4d11 #2037 CASSJAVA-97: Let users inject an ID for each request and write to the custom payload
✅ Cherry-picked 3bb5b18903, 7982f413a9 #2018 CASSJAVA-80: Support configuration to disable DNS reverse-lookups for SAN validation
✅ Cherry-picked 0115cd67c1 #2035 Prevent long overflow in SNI address resolution
✅ Cherry-picked d7e829775c N/A Make guava an optional dependency of java-driver-guava-shaded
✅ Cherry-picked 204dd09329 (code only) #1999 CASSJAVA-40: Java 21 compatibility fixes for ArrayUtils and tests

Upstream commits skipped (not applicable to our fork)

Upstream Commit Reason
90612f6758 maven-release-plugin: prepare for next dev iteration
c0cae9bf76 CASSJAVA-90: native-protocol version update (our fork already at 1.5.2.1, newer than upstream 1.5.2)
529d56e174, 7161d12fb2 CASSJAVA-40: CI/Jenkinsfile changes only (not applicable to our CI)
f42ab99ccc Netty upgrade to 4.1.119 (our fork already at 4.1.127)
c43efd42cb revapi artifact ID fix (build tooling)
eb54934d5d Jackson bump to 2.13.5 (our fork already at 2.21.1)
29d3531202 Fix revapi complaints about optional deps
f49e19b8c7, 17ebe6092e Jenkinsfile CI changes
69eebb939c Change groupId in README (not applicable)
05e6717253 Manual codeblock directive fix (docs)
104751c166, 77b2baebeb Changelog and release prep

Additional fixes

  • Fixed javadoc reference for inet.ipaddr.Address#isPrefixBlock() (changed @link to @code)
  • Fixed MockedDriverContextFactory and StartupOptionsBuilderTest to mock LOAD_BALANCING_DEFAULT_LWT_REQUEST_ROUTING_METHOD option (pre-existing test issue exposed by CASSJAVA-92 changes)

Test plan

  • Compilation passes (Java 8)
  • Unit tests pass
  • CI integration tests

🤖 Generated with Claude Code

tatu-at-datastax and others added 15 commits March 2, 2026 23:52
…ate Object[] allocation (found via profiler)

patch by Tatu Saloranta; reviewed by Dmitry Konstantinov and Bret McGuire for CASSJAVA-68
…ate network based on its subnet mask

patch by Alex Sasnouskikh; reviewed by Bret McGuire and Andy Tolbert
reference: apache#2013
This value is initialized at constructor time and marked final, so it
can never change. There is no need to have access to this reference
synchronized.

Patch by Jason Koch; reviewed by Alexandre Dutra, Andy Tolbert and Jane He
Patch by Michael Karsten; reviewed by Abe Ratnofsky and Andy Tolbert for CASSJAVA-89
Following from 6d3ba47 this changes the throttler to a complete
lock-free implementation. Update the related comments and README now
that it is lock-free.

Patch by Jason Koch; reviewed by Alexandre Dutra and Andy Tolbert
patch by Lukasz Antoniak; reviewed by Bret McGuire and Abe Ratnofsky for CASSJAVA-92
… custom payload

patch by Jane He; reviewed by Abe Ratnofsky and Bret McGuire for CASSJAVA-97
Upstream PR: apache#1999
Cherry-picked from: 204dd09 (code changes only, CI changes excluded)
patch by Lukasz Antoniak and Alexandre Dutra; reviewed by Bret McGuire
With CASSJAVA-52, the java-driver-guava-shaded is now in tree.

This appears to work great, but there is a slight issue with the
dependency tree that allows unshaded guava packages to be imported
within the project.

It looks like marking guava as an optional dependency in
java-driver-guava-shaded resolves this.

patch by Andy Tolbert; reviewed by Alexandre Dutra and Dmitry Konstantinov for CASSJAVA-76
The DefaultLoadBalancingPolicy constructor reads
LOAD_BALANCING_DEFAULT_LWT_REQUEST_ROUTING_METHOD which was missing
from the mocked profile, causing NPE in StartupOptionsBuilderTest.
…IdGeneratorIT

- Fix code formatting in DefaultDriverOption.java
- Add request_id docs to manual/core toctree
- Skip RequestIdGeneratorIT on Scylla (custom payload not supported)
@dkropachev dkropachev force-pushed the merge-upstream-4.19.1 branch from 4e93977 to 08bf881 Compare March 3, 2026 04:35
When BaseCcmRule is used as @rule (instance-level), JUnit passes a
Description for the test method, so description.getAnnotation() only
finds method-level annotations. Class-level annotations like
@ScyllaSkip on RequestIdGeneratorIT were not being detected.

Now also check description.getTestClass().getAnnotation() as a
fallback, which correctly finds class-level annotations regardless
of whether the rule is used as @rule or @ClassRule.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

6 participants