Skip to content

Commit

Permalink
Disable ddprof by default on GraalVM JIT (#6237)
Browse files Browse the repository at this point in the history
  • Loading branch information
jbachorik committed Nov 17, 2023
1 parent 9a81b37 commit 743bacd
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
4 changes: 4 additions & 0 deletions internal-api/src/main/java/datadog/trace/api/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -2455,6 +2455,10 @@ public static boolean isDatadogProfilerSafeInCurrentEnvironment() {
return false;
}
}
if (Platform.isGraalVM()) {
// let's be conservative about GraalVM and require opt-in from the users
return false;
}
boolean result =
Platform.isJ9()
|| !Platform.isJavaVersion(18) // missing AGCT fixes
Expand Down
11 changes: 9 additions & 2 deletions internal-api/src/main/java/datadog/trace/api/Platform.java
Original file line number Diff line number Diff line change
Expand Up @@ -186,22 +186,25 @@ static final class JvmRuntime {

public final String vendor;
public final String version;
public final String vendorVersion;
public final String patches;

public JvmRuntime() {
this(
System.getProperty("java.version"),
System.getProperty("java.runtime.version"),
System.getProperty("java.runtime.name"),
System.getProperty("java.vm.vendor"));
System.getProperty("java.vm.vendor"),
System.getProperty("java.vendor.version"));
}

// Only visible for testing
JvmRuntime(String javaVer, String rtVer, String name, String vendor) {
JvmRuntime(String javaVer, String rtVer, String name, String vendor, String vendorVersion) {
this.name = name == null ? "" : name;
this.vendor = vendor == null ? "" : vendor;
javaVer = javaVer == null ? "" : javaVer;
this.version = javaVer;
this.vendorVersion = vendorVersion == null ? "" : vendorVersion;
rtVer = javaVer.isEmpty() || rtVer == null ? javaVer : rtVer;
int patchStart = javaVer.length() + 1;
this.patches = (patchStart >= rtVer.length()) ? "" : rtVer.substring(javaVer.length() + 1);
Expand Down Expand Up @@ -304,6 +307,10 @@ public static boolean isJ9() {
return System.getProperty("java.vm.name").contains("J9");
}

public static boolean isGraalVM() {
return RUNTIME.vendorVersion.toLowerCase().contains("graalvm");
}

public static String getLangVersion() {
return String.valueOf(JAVA_VERSION.major);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class PlatformTest extends DDSpecification {

def "JVMRuntime is at least a bit resilient against weird version properties"() {
when:
def runtime = new Platform.JvmRuntime(propVersion, rtVersion, propName, propVendor)
def runtime = new Platform.JvmRuntime(propVersion, rtVersion, propName, propVendor, null)

then:
runtime.version == version
Expand Down

0 comments on commit 743bacd

Please sign in to comment.