All libraries · ← executors

executors

Instrumentation v1.18.0 · 19 → 20 · 77 tests
from v1.18.0 to v1.19.0

Step 1: generate report using Claude

The prompt had the following elements as context :

  • instrumentation tests' stderr and stdout diff.
  • execution graphs diff
  • library diff

The generated report is :

Step 2: Apply the suggested fix of setting java tool options

Running the following command to pass class path to Gradle : $env:JAVA_TOOL_OPTIONS = '--add-opens=java.base/java.lang=ALL-UNNAMED'. This yields another error behind it : Upgrade ByteBuddy Version

conventions/build.gradle.kts
dependencyManagement/build.gradle.kts
gradle-plugins/build.gradle.kts

Step 3: Upgrade ByteBuddy version from v1.12.10 to v1.12.18

After upgrading the ByteBuddy version, another error is yielded because of

HelperInjector implements net.bytebuddy.agent.builder.AgentBuilder.Transformer — this is a ByteBuddy interface method, not internal API. The signature change here is a mechanical consequence of ByteBuddy itself changing AgentBuilder.Transformer.transform(...) to add a ProtectionDomain parameter (ByteBuddy did this to mirror the JVM's own ClassFileTransformer.transform(...) callback, which has always carried a ProtectionDomain)

> Task :muzzle:compileJava
C:\Users\NourOuladMoussa\Documents\Projects\DB-instances-populator\external\opentelemetry-java-instrumentation\muzzle\src\main\java\io\opentelemetry\javaagent\tooling\HelperInjector.java:50: error: HelperInjector is not abstract and does not override abstract method transform(Builder<?>,TypeDescription,ClassLoader,JavaModule,ProtectionDomain) in Transformer
public class HelperInjector implements Transformer {
       ^
C:\Users\NourOuladMoussa\Documents\Projects\DB-instances-populator\external\opentelemetry-java-instrumentation\muzzle\src\main\java\io\opentelemetry\javaagent\tooling\HelperInjector.java:165: error: method does not override or implement a method from a supertype
  @Override
  ^
2 errors

> Task :muzzle:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':muzzle:compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 24s
66 actionable tasks: 46 executed, 20 up-to-date

Step 4 : Add ProtectionDomain parameter to HelperInjector and all affected methods (All parts of the common instrumentation code):

Modification happened on the following fFiles :

instrumentation/internal/internal-lambda/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/lambda/InnerClassLambdaMetafactoryInstrumentation.java
instrumentation/internal/internal-reflection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/reflection/ClassInstrumentation.java
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/FieldBackedImplementationInstaller.java
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/instrumentation/ConstantAdjuster.java
muzzle/src/main/java/io/opentelemetry/javaagent/tooling/HelperInjector.java
muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/ClassLoaderMatcher.java

The build is successful and it passes.

BUILD SUCCESSFUL in 30s
130 actionable tasks: 13 executed, 117 up-to-date