Bret McGuire created CASSJAVA-122:
-------------------------------------
Summary: OsgiLz4IT appears to be failing after recent switch to
new lz4 impl
Key: CASSJAVA-122
URL: https://issues.apache.org/jira/browse/CASSJAVA-122
Project: Apache Cassandra Java driver
Issue Type: Bug
Components: Tests
Reporter: Bret McGuire
Noted on Jenkins runs against master but also able to reproduce locally:
*11:57:43* [INFO] Running
com.datastax.oss.driver.internal.osgi.OsgiLz4IT*11:57:43* *11:57:43* SLF4J(W):
No SLF4J providers were found.*11:57:43* SLF4J(W): Defaulting to no-operation
(NOP) logger implementation*11:57:43* SLF4J(W): See
[https://www.slf4j.org/codes.html#noProviders] for further details.*11:57:43*
Jan 15, 2026 5:57:26 PM io.netty.channel.ChannelInitializer
exceptionCaught*11:57:43* WARNING: Failed to initialize a channel. Closing:
[id: 0x54e22c31]*11:57:43* java.lang.IllegalStateException: Could not find the
LZ4 library on the classpath (the driver declares it as an optional dependency,
so you need to declare it explicitly)*11:57:43* at
com.datastax.oss.driver.internal.core.protocol.Lz4Compressor.<init>(Lz4Compressor.java:54)*11:57:43*
at
com.datastax.oss.driver.internal.core.protocol.Lz4Compressor.<init>(Lz4Compressor.java:43)*11:57:43*
at
com.datastax.oss.driver.internal.core.protocol.BuiltInCompressors.newInstance(BuiltInCompressors.java:37)*11:57:43*
at
com.datastax.oss.driver.internal.core.context.DefaultDriverContext.buildCompressor(DefaultDriverContext.java:444)*11:57:43*
at
com.datastax.oss.driver.internal.core.util.concurrent.LazyReference.get(LazyReference.java:57)*11:57:43*
at
com.datastax.oss.driver.internal.core.context.DefaultDriverContext.getCompressor(DefaultDriverContext.java:828)*11:57:43*
at
com.datastax.oss.driver.internal.core.context.DefaultDriverContext.buildFrameCodec(DefaultDriverContext.java:454)*11:57:43*
at
com.datastax.oss.driver.internal.core.util.concurrent.LazyReference.get(LazyReference.java:57)*11:57:43*
at
com.datastax.oss.driver.internal.core.context.DefaultDriverContext.getFrameCodec(DefaultDriverContext.java:840)*11:57:43*
at
com.datastax.oss.driver.internal.core.channel.ChannelFactory$ChannelFactoryInitializer.initChannel(ChannelFactory.java:377)*11:57:43*
at
io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129)*11:57:43*
at
io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112)*11:57:43*
at
io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1130)*11:57:43*
at
io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:558)*11:57:43*
at
io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:45)*11:57:43*
at
io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1410)*11:57:43*
at
io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1064)*11:57:43*
at
io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:599)*11:57:43*
at
io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:513)*11:57:43*
at
io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:428)*11:57:43*
at
io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:485)*11:57:43*
at
io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)*11:57:43*
at
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)*11:57:43*
at
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)*11:57:43*
at
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)*11:57:43* at
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998)*11:57:43*
at
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)*11:57:43*
at
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)*11:57:43*
at java.lang.Thread.run(Thread.java:748)*11:57:43* *11:57:43* ERROR:
Bundle com.datastax.oss.driver.osgi [11] Error starting
reference:file:target/classes (org.osgi.framework.BundleException: Activator
start error in bundle com.datastax.oss.driver.osgi [11].)*11:57:43*
com.datastax.oss.driver.api.core.AllNodesFailedException: Could not reach any
contact point, make sure you've provided valid addresses (showing first 1
nodes, use getAllErrors() for more): Node(endPoint=127.0.0.1:9042, hostId=null,
hashCode=7ca200fe): [java.lang.IllegalStateException: Could not find the LZ4
library on the classpath (the driver declares it as an optional dependency, so
you need to declare it explicitly)]*11:57:43* at
com.datastax.oss.driver.api.core.AllNodesFailedException.copy(AllNodesFailedException.java:143)*11:57:43*
at
com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures.getUninterruptibly(CompletableFutures.java:154)*11:57:43*
at
com.datastax.oss.driver.api.core.session.SessionBuilder.build(SessionBuilder.java:852)*11:57:43*
at
com.datastax.oss.driver.internal.osgi.MailboxActivator.buildSession(MailboxActivator.java:144)*11:57:43*
at
com.datastax.oss.driver.internal.osgi.MailboxActivator.start(MailboxActivator.java:56)*11:57:43*
at
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:849)*11:57:43*
at
org.apache.felix.framework.Felix.activateBundle(Felix.java:2429)*11:57:43* at
org.apache.felix.framework.Felix.startBundle(Felix.java:2335)*11:57:43* at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566)*11:57:43*
at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)*11:57:43*
at java.lang.Thread.run(Thread.java:748)*11:57:43* Suppressed:
java.lang.IllegalStateException: Could not find the LZ4 library on the
classpath (the driver declares it as an optional dependency, so you need to
declare it explicitly)*11:57:43* at
com.datastax.oss.driver.internal.core.protocol.Lz4Compressor.<init>(Lz4Compressor.java:54)*11:57:43*
at
com.datastax.oss.driver.internal.core.protocol.Lz4Compressor.<init>(Lz4Compressor.java:43)*11:57:43*
at
com.datastax.oss.driver.internal.core.protocol.BuiltInCompressors.newInstance(BuiltInCompressors.java:37)*11:57:43*
at
com.datastax.oss.driver.internal.core.context.DefaultDriverContext.buildCompressor(DefaultDriverContext.java:444)*11:57:43*
at
com.datastax.oss.driver.internal.core.util.concurrent.LazyReference.get(LazyReference.java:57)*11:57:43*
at
com.datastax.oss.driver.internal.core.context.DefaultDriverContext.getCompressor(DefaultDriverContext.java:828)*11:57:43*
at
com.datastax.oss.driver.internal.core.context.DefaultDriverContext.buildFrameCodec(DefaultDriverContext.java:454)*11:57:43*
at
com.datastax.oss.driver.internal.core.util.concurrent.LazyReference.get(LazyReference.java:57)*11:57:43*
at
com.datastax.oss.driver.internal.core.context.DefaultDriverContext.getFrameCodec(DefaultDriverContext.java:840)*11:57:43*
at
com.datastax.oss.driver.internal.core.channel.ChannelFactory$ChannelFactoryInitializer.initChannel(ChannelFactory.java:377)*11:57:43*
at
io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129)*11:57:43*
at
io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112)*11:57:43*
at
io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1130)*11:57:43*
at
io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:558)*11:57:43*
at
io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:45)*11:57:43*
at
io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1410)*11:57:43*
at
io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1064)*11:57:43*
at
io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:599)*11:57:43*
at
io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:513)*11:57:43*
at
io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:428)*11:57:43*
at
io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:485)*11:57:43*
at
io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)*11:57:43*
at
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)*11:57:43*
at
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)*11:57:43*
at
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)*11:57:43*
at
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998)*11:57:43*
at
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)*11:57:43*
at
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)*11:57:43*
... 1 more*11:57:43* Jan 15, 2026 5:57:26 PM
org.apache.aries.spifly.BaseActivator log*11:57:43* INFO: Registered provider
ch.qos.logback.classic.spi.LogbackServiceProvider of service
org.slf4j.spi.SLF4JServiceProvider in bundle ch.qos.logback.classic*11:57:43*
ERROR: Bundle lz4-java [40] Error starting
file:/tmp/1768499772384-0/pax-exam-downloads/lz4-java_0.jar
(org.osgi.framework.BundleException: Unable to resolve lz4-java [40](R 40.0):
missing requirement [lz4-java [40](R 40.0)] osgi.wiring.package;
(osgi.wiring.package=sun.misc) Unresolved requirements: [[lz4-java [40](R
40.0)] osgi.wiring.package; (osgi.wiring.package=sun.misc)])*11:57:43*
org.osgi.framework.BundleException: Unable to resolve lz4-java [40](R 40.0):
missing requirement [lz4-java [40](R 40.0)] osgi.wiring.package;
(osgi.wiring.package=sun.misc) Unresolved requirements: [[lz4-java [40](R
40.0)] osgi.wiring.package; (osgi.wiring.package=sun.misc)]*11:57:43*
at
org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4398)*11:57:43*
at org.apache.felix.framework.Felix.startBundle(Felix.java:2308)*11:57:43*
at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566)*11:57:43*
at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)*11:57:43*
at java.lang.Thread.run(Thread.java:748)*11:57:43* 17:57:26.942 [main]
ERROR o.o.p.e.forked.ForkedTestContainer - Bundle [id:40,
url:mvn:at.yawk.lz4/lz4-java/1.10.1] is not resolved*11:57:43* *11:57:43*
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 11.484
s <<< FAILURE! - in com.datastax.oss.driver.internal.osgi.OsgiLz4IT*11:57:43*
[ERROR] com.datastax.oss.driver.internal.osgi.OsgiLz4IT.test_lz4_compression
Time elapsed: 11.484 s <<< ERROR!
Pretty sure this came in with the [lz4
update|https://github.com/apache/cassandra-java-driver/commit/595cb29912dc8b55663cc13bafe3f17dc4f91ce6]
to address known CVEs. Looks like we aren't building a valid bundle for some
reason... note this bit here as the basis for that hypothesis:
*11:57:43* ERROR: Bundle lz4-java [40] Error starting
file:/tmp/1768499772384-0/pax-exam-downloads/lz4-java_0.jar
(org.osgi.framework.BundleException: Unable to resolve lz4-java [40](R 40.0):
missing requirement [lz4-java [40](R 40.0)] osgi.wiring.package;
(osgi.wiring.package=sun.misc) Unresolved requirements: [[lz4-java [40](R
40.0)] osgi.wiring.package; (osgi.wiring.package=sun.misc)])*11:57:43*
org.osgi.framework.BundleException: Unable to resolve lz4-java [40](R 40.0):
missing requirement [lz4-java [40](R 40.0)] osgi.wiring.package;
(osgi.wiring.package=sun.misc) Unresolved requirements: [[lz4-java [40](R
40.0)] osgi.wiring.package; (osgi.wiring.package=sun.misc)]*11:57:43* at
org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4398)*11:57:43*
at org.apache.felix.framework.Felix.startBundle(Felix.java:2308)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]