Skip to content

Commit 7e1bb03

Browse files
authored
Fix SymDB startup (#10493)
When SymDB explicitly disabled and Dynamic Instrumentation is enabled honor correctly the disablemennt Same for Code Origin
1 parent e7dbc55 commit 7e1bb03

File tree

4 files changed

+16
-12
lines changed

4 files changed

+16
-12
lines changed

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static datadog.environment.JavaVirtualMachine.isJavaVersionAtLeast;
44
import static datadog.environment.JavaVirtualMachine.isOracleJDK8;
5+
import static datadog.trace.api.Config.isExplicitlyDisabled;
56
import static datadog.trace.api.ConfigDefaults.DEFAULT_STARTUP_LOGS_ENABLED;
67
import static datadog.trace.api.config.GeneralConfig.DATA_JOBS_COMMAND_PATTERN;
78
import static datadog.trace.api.config.GeneralConfig.DATA_JOBS_ENABLED;
@@ -1457,11 +1458,6 @@ && isExplicitlyDisabled(DebuggerConfig.DISTRIBUTED_DEBUGGER_ENABLED)) {
14571458
startDebuggerAgent(inst, scoClass, sco);
14581459
}
14591460

1460-
private static boolean isExplicitlyDisabled(String booleanKey) {
1461-
return Config.get().configProvider().isSet(booleanKey)
1462-
&& !Config.get().configProvider().getBoolean(booleanKey);
1463-
}
1464-
14651461
private static synchronized void startDebuggerAgent(
14661462
Instrumentation inst, Class<?> scoClass, Object sco) {
14671463
StaticEventLogger.begin("Debugger");

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerAgent.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import datadog.remoteconfig.ConfigurationPoller;
2828
import datadog.remoteconfig.Product;
2929
import datadog.trace.api.Config;
30+
import datadog.trace.api.config.DebuggerConfig;
31+
import datadog.trace.api.config.TraceInstrumentationConfig;
3032
import datadog.trace.api.debugger.DebuggerConfigBridge;
3133
import datadog.trace.api.flare.TracerFlare;
3234
import datadog.trace.api.git.GitInfo;
@@ -89,8 +91,12 @@ public static synchronized void run(
8991
}
9092
if (config.isDynamicInstrumentationEnabled()) {
9193
startDynamicInstrumentation(config);
92-
startCodeOriginForSpans(config);
93-
startSymbolDatabase(config);
94+
if (!Config.isExplicitlyDisabled(TraceInstrumentationConfig.CODE_ORIGIN_FOR_SPANS_ENABLED)) {
95+
startCodeOriginForSpans(config);
96+
}
97+
if (!Config.isExplicitlyDisabled(DebuggerConfig.SYMBOL_DATABASE_ENABLED)) {
98+
startSymbolDatabase(config);
99+
}
94100
if (config.getDynamicInstrumentationInstrumentTheWorld() != null) {
95101
setupInstrumentTheWorldTransformer(config, instrumentation, sink);
96102
}

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DefaultDebuggerConfigUpdater.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.datadog.debugger.agent;
22

3+
import static datadog.trace.api.Config.isExplicitlyDisabled;
4+
35
import datadog.trace.api.Config;
46
import datadog.trace.api.config.DebuggerConfig;
57
import datadog.trace.api.config.TraceInstrumentationConfig;
@@ -67,11 +69,6 @@ public boolean isDistributedDebuggerEnabled() {
6769
return DebuggerAgent.distributedDebuggerEnabled.get();
6870
}
6971

70-
private static boolean isExplicitlyDisabled(String booleanKey) {
71-
return Config.get().configProvider().isSet(booleanKey)
72-
&& !Config.get().configProvider().getBoolean(booleanKey);
73-
}
74-
7572
private static void startOrStopFeature(
7673
Config config,
7774
String booleanKey,

internal-api/src/main/java/datadog/trace/api/Config.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5705,6 +5705,11 @@ public static Config get() {
57055705
return INSTANCE;
57065706
}
57075707

5708+
public static boolean isExplicitlyDisabled(String booleanKey) {
5709+
return Config.get().configProvider().isSet(booleanKey)
5710+
&& !Config.get().configProvider().getBoolean(booleanKey);
5711+
}
5712+
57085713
/**
57095714
* This method is deprecated since the method of configuration will be changed in the future. The
57105715
* properties instance should instead be passed directly into the DDTracer builder:

0 commit comments

Comments
 (0)