Skip to content

Conversation

@ruhan1
Copy link
Contributor

@ruhan1 ruhan1 commented Dec 9, 2025

This commit resolves the Netty version conflict causing LinkageError during startup.

Error:
Caused by: java.lang.NoSuchMethodError: Method
io.netty.channel.epoll.NativeStaticallyReferencedJniMethods.isSupportingTcpFastopen()Z not found

Root Cause:
Multiple dependencies brought in incompatible Netty versions:

  • Cassandra driver 3.11.3 (com.datastax.cassandra) declared Netty 4.0.44.Final (2016!)
  • Infinispan 9.4.24 brought in Netty 4.1.51.Final
  • o11yphant 1.9.2 brought in Netty 4.1.118.Final
  • Various other dependencies brought in 4.1.77.Final and 4.1.100.Final

This version mismatch prevented Netty from loading native epoll transport, causing fallback to NIO with warnings.

Solution (following approach used in path-mapped-storage):

  1. Switched from com.datastax.cassandra to org.apache.cassandra groupId to match path-mapped-storage dependency (version 3.12.1) Note: Package names remain com.datastax.driver.* internally
  2. Added Netty BOM version 4.1.118.Final to enforce consistent Netty versions across all modules (eliminates need for exclusions)

Changes:

  • pom.xml: Added Netty BOM, switched to Apache Cassandra driver 3.12.1
  • subsys/cassandra/pom.xml: Updated to Apache Cassandra driver
  • addons/schedule/model-java/pom.xml: Updated to Apache Cassandra driver
  • addons/schedule/common/pom.xml: Updated to Apache Cassandra driver

Result:
All modules now use Netty 4.1.118.Final consistently via BOM, eliminating version conflicts and allowing native epoll transport to load properly.

🤖 Generated with Claude Code

…e Cassandra driver

This commit resolves the Netty version conflict causing LinkageError during startup.

Error:
    java.lang.LinkageError: Possible multiple incompatible native libraries
    on the classpath for libnetty_transport_native_epoll_x86_64.so
    Caused by: java.lang.NoSuchMethodError: Method
    io.netty.channel.epoll.NativeStaticallyReferencedJniMethods.isSupportingTcpFastopen()Z not found

Root Cause:
Multiple dependencies brought in incompatible Netty versions:
- Cassandra driver 3.11.3 (com.datastax.cassandra) declared Netty 4.0.44.Final (2016!)
- Infinispan 9.4.24 brought in Netty 4.1.51.Final
- o11yphant 1.9.2 brought in Netty 4.1.118.Final
- Various other dependencies brought in 4.1.77.Final and 4.1.100.Final

This version mismatch prevented Netty from loading native epoll transport,
causing fallback to NIO with warnings.

Solution (following approach used in path-mapped-storage):
1. Switched from com.datastax.cassandra to org.apache.cassandra groupId
   to match path-mapped-storage dependency (version 3.12.1)
   Note: Package names remain com.datastax.driver.* internally
2. Added Netty BOM version 4.1.118.Final to enforce consistent Netty
   versions across all modules (eliminates need for exclusions)

Changes:
- pom.xml: Added Netty BOM, switched to Apache Cassandra driver 3.12.1
- subsys/cassandra/pom.xml: Updated to Apache Cassandra driver
- addons/schedule/model-java/pom.xml: Updated to Apache Cassandra driver
- addons/schedule/common/pom.xml: Updated to Apache Cassandra driver

Result:
All modules now use Netty 4.1.118.Final consistently via BOM, eliminating
version conflicts and allowing native epoll transport to load properly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@ruhan1 ruhan1 requested review from ligangty and sswguo December 9, 2025 10:27
@ruhan1
Copy link
Contributor Author

ruhan1 commented Dec 9, 2025

@copilot review the code see whether it fix the version issue as expected.

@ruhan1
Copy link
Contributor Author

ruhan1 commented Dec 10, 2025

let's merge and test it.

@ruhan1 ruhan1 merged commit 9fbb28c into Commonjava:master Dec 10, 2025
1 check passed
@ruhan1 ruhan1 deleted the fix-netty-version-conflict branch December 10, 2025 09:26
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.

1 participant