From aba345dddcec611a6d79ae0c0c819cda6b5c0bf7 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Fri, 15 Aug 2025 15:43:48 +0300 Subject: [PATCH 1/3] Try to work around openj9 crash --- .../src/main/kotlin/otel.java-conventions.gradle.kts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/conventions/src/main/kotlin/otel.java-conventions.gradle.kts b/conventions/src/main/kotlin/otel.java-conventions.gradle.kts index 22f6bf59a98a..4cd73b6b819c 100644 --- a/conventions/src/main/kotlin/otel.java-conventions.gradle.kts +++ b/conventions/src/main/kotlin/otel.java-conventions.gradle.kts @@ -339,6 +339,14 @@ val resourceClassesCsv = resourceNames.joinToString(",") { "io.opentelemetry.sdk tasks.withType().configureEach { useJUnitPlatform() + // work around jvm crash on openJ9 8 after updating armeria to 1.33.1 + val testJavaVersion = gradle.startParameter.projectProperties["testJavaVersion"]?.let(JavaVersion::toVersion) + val useJ9 = gradle.startParameter.projectProperties["testJavaVM"]?.run { this == "openj9" } + ?: false + if (useJ9 && testJavaVersion != null && testJavaVersion.isJava8) { + jvmArgs("-Xjit:exclude={io/opentelemetry/testing/internal/io/netty/buffer/HeapByteBufUtil.setLong*},exclude={io/opentelemetry/testing/internal/io/netty/buffer/UnpooledHeapByteBuf._setLong*}") + } + // There's no real harm in setting this for all tests even if any happen to not be using context // propagation. jvmArgs("-Dio.opentelemetry.context.enableStrictContext=${rootProject.findProperty("enableStrictContext") ?: true}") From 45027600b43fcf97dcb96fc1f9a16459997cbed3 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Fri, 15 Aug 2025 16:08:31 +0300 Subject: [PATCH 2/3] exclude more methods --- conventions/src/main/kotlin/otel.java-conventions.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conventions/src/main/kotlin/otel.java-conventions.gradle.kts b/conventions/src/main/kotlin/otel.java-conventions.gradle.kts index 4cd73b6b819c..6eb884c2a07e 100644 --- a/conventions/src/main/kotlin/otel.java-conventions.gradle.kts +++ b/conventions/src/main/kotlin/otel.java-conventions.gradle.kts @@ -344,7 +344,7 @@ tasks.withType().configureEach { val useJ9 = gradle.startParameter.projectProperties["testJavaVM"]?.run { this == "openj9" } ?: false if (useJ9 && testJavaVersion != null && testJavaVersion.isJava8) { - jvmArgs("-Xjit:exclude={io/opentelemetry/testing/internal/io/netty/buffer/HeapByteBufUtil.setLong*},exclude={io/opentelemetry/testing/internal/io/netty/buffer/UnpooledHeapByteBuf._setLong*}") + jvmArgs("-Xjit:exclude={io/opentelemetry/testing/internal/io/netty/buffer/HeapByteBufUtil.*},exclude={io/opentelemetry/testing/internal/io/netty/buffer/UnpooledHeapByteBuf.*}") } // There's no real harm in setting this for all tests even if any happen to not be using context From bf456e309ce54f3ba0b1166ee405f0993a160de9 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Fri, 15 Aug 2025 17:00:50 +0300 Subject: [PATCH 3/3] exclude more methods --- conventions/src/main/kotlin/otel.java-conventions.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conventions/src/main/kotlin/otel.java-conventions.gradle.kts b/conventions/src/main/kotlin/otel.java-conventions.gradle.kts index 6eb884c2a07e..f80a8f5ecbc3 100644 --- a/conventions/src/main/kotlin/otel.java-conventions.gradle.kts +++ b/conventions/src/main/kotlin/otel.java-conventions.gradle.kts @@ -344,7 +344,7 @@ tasks.withType().configureEach { val useJ9 = gradle.startParameter.projectProperties["testJavaVM"]?.run { this == "openj9" } ?: false if (useJ9 && testJavaVersion != null && testJavaVersion.isJava8) { - jvmArgs("-Xjit:exclude={io/opentelemetry/testing/internal/io/netty/buffer/HeapByteBufUtil.*},exclude={io/opentelemetry/testing/internal/io/netty/buffer/UnpooledHeapByteBuf.*}") + jvmArgs("-Xjit:exclude={io/opentelemetry/testing/internal/io/netty/buffer/HeapByteBufUtil.*},exclude={io/opentelemetry/testing/internal/io/netty/buffer/UnpooledHeapByteBuf.*},exclude={io/opentelemetry/testing/internal/io/netty/buffer/AbstractByteBuf.*}") } // There's no real harm in setting this for all tests even if any happen to not be using context