From 1644f524ebc2a11540a6a980c20137e7e74056aa Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Sun, 16 Feb 2025 18:58:36 +0800 Subject: [PATCH 1/2] docker: updates zipkin-cassandra test image to 4.1.8 Signed-off-by: Adrian Cole --- docker/test-images/zipkin-cassandra/Dockerfile | 5 ++--- docker/test-images/zipkin-cassandra/install.sh | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/docker/test-images/zipkin-cassandra/Dockerfile b/docker/test-images/zipkin-cassandra/Dockerfile index 503ec8269a..04d2f1fce5 100644 --- a/docker/test-images/zipkin-cassandra/Dockerfile +++ b/docker/test-images/zipkin-cassandra/Dockerfile @@ -25,8 +25,7 @@ FROM ghcr.io/openzipkin/java:${java_version} as install # Use latest stable version: https://cassandra.apache.org/download/ # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -# TODO: revlocked, so probably put effort into 5.x instead -ARG cassandra_version=4.1.7 +ARG cassandra_version=4.1.8 ENV CASSANDRA_VERSION=$cassandra_version WORKDIR /install @@ -36,7 +35,7 @@ RUN /tmp/install.sh && rm /tmp/install.sh FROM ghcr.io/openzipkin/java:${java_version}-jre as zipkin-cassandra LABEL org.opencontainers.image.description="Cassandra on OpenJDK and Alpine Linux with Zipkin keyspaces pre-installed" -ARG cassandra_version=4.1.7 +ARG cassandra_version=4.1.8 LABEL cassandra-version=$cassandra_version ENV CASSANDRA_VERSION=$cassandra_version diff --git a/docker/test-images/zipkin-cassandra/install.sh b/docker/test-images/zipkin-cassandra/install.sh index f78ba0ca21..e58b163c86 100755 --- a/docker/test-images/zipkin-cassandra/install.sh +++ b/docker/test-images/zipkin-cassandra/install.sh @@ -33,6 +33,10 @@ cat > pom.xml <<-'EOF' net.java.dev.jna * + + com.github.jbellis + * + org.slf4j * @@ -49,6 +53,12 @@ cat > pom.xml <<-'EOF' jna 5.16.0 + + + com.github.jbellis + jamm + 0.4.0 + org.slf4j @@ -63,6 +73,12 @@ mvn -q --batch-mode -DoutputDirectory=lib \ org.apache.maven.plugins:maven-dependency-plugin:3.8.1:copy-dependencies rm pom.xml +# Patch Cassandra 4.1's ObjectSizes.java to work with newer jamm. +wget --random-wait --tries=5 -qO ObjectSizes.java \ + https://raw.githubusercontent.com/apache/cassandra/refs/tags/cassandra-5.0.3/src/java/org/apache/cassandra/utils/ObjectSizes.java +sed -i 's/sizeOnHeapExcludingDataOf/sizeOnHeapExcludingData/g' ObjectSizes.java +javac -cp 'lib/*' -d classes ObjectSizes.java + # Make sure you use relative paths in references like this, so that installation # is decoupled from runtime mkdir -p conf data commitlog saved_caches hints triggers @@ -116,7 +132,7 @@ sed -i '/read_repair_chance/d' schema # # Merging makes adding Cassandra v5 easier and lets us share a common JRE 17+ # with other test images even if Cassandra v4 will never officially support it. -# https://github.com/apache/cassandra/blob/cassandra-4.1.7/conf/jvm11-server.options +# https://github.com/apache/cassandra/blob/cassandra-4.1.8/conf/jvm11-server.options # https://github.com/apache/cassandra/blob/cassandra-5.0.3/conf/jvm17-server.options # # Finally, we allow security manager to prevent JRE 21 crashing when Cassandra From 29c73c26b48747af5c4416df4a2784b152c02d9d Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Sun, 16 Feb 2025 19:15:23 +0800 Subject: [PATCH 2/2] docs Signed-off-by: Adrian Cole --- docker/test-images/zipkin-cassandra/install.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docker/test-images/zipkin-cassandra/install.sh b/docker/test-images/zipkin-cassandra/install.sh index e58b163c86..f89f8a917a 100755 --- a/docker/test-images/zipkin-cassandra/install.sh +++ b/docker/test-images/zipkin-cassandra/install.sh @@ -53,7 +53,7 @@ cat > pom.xml <<-'EOF' jna 5.16.0 - + com.github.jbellis jamm @@ -73,10 +73,12 @@ mvn -q --batch-mode -DoutputDirectory=lib \ org.apache.maven.plugins:maven-dependency-plugin:3.8.1:copy-dependencies rm pom.xml -# Patch Cassandra 4.1's ObjectSizes.java to work with newer jamm. +# Get a version of ObjectSizes.java that compiles with jamm 0.4.0 wget --random-wait --tries=5 -qO ObjectSizes.java \ https://raw.githubusercontent.com/apache/cassandra/refs/tags/cassandra-5.0.3/src/java/org/apache/cassandra/utils/ObjectSizes.java +# Rename a public method back to the same name as used in Cassandra 4.1. sed -i 's/sizeOnHeapExcludingDataOf/sizeOnHeapExcludingData/g' ObjectSizes.java +# Compile it into classes, which overrides the same class from Cassandra 4.1. javac -cp 'lib/*' -d classes ObjectSizes.java # Make sure you use relative paths in references like this, so that installation