Skip to content

Commit 512699a

Browse files
committed
Ensure tracer and scheduler are clean after test execution
1 parent 036fe91 commit 512699a

File tree

25 files changed

+117
-68
lines changed

25 files changed

+117
-68
lines changed

communication/src/main/java/datadog/communication/ddagent/SharedCommunicationObjects.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public DDAgentFeaturesDiscovery featuresDiscovery(Config config) {
159159
ret.discover(); // safe to run on same thread
160160
} else {
161161
// avoid performing blocking I/O operation on application thread
162-
AgentTaskScheduler.INSTANCE.execute(ret::discoverIfOutdated);
162+
AgentTaskScheduler.getInstance().execute(ret::discoverIfOutdated);
163163
}
164164
}
165165
featuresDiscovery = ret;

communication/src/main/java/datadog/communication/monitor/DDAgentStatsDConnection.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ private void scheduleConnect() {
8787
log.debug(
8888
"Scheduling StatsD connection in {} seconds - {}", remainingDelay, statsDAddress());
8989
}
90-
AgentTaskScheduler.INSTANCE.scheduleWithJitter(
91-
ConnectTask.INSTANCE, this, remainingDelay, SECONDS);
90+
AgentTaskScheduler.getInstance()
91+
.scheduleWithJitter(ConnectTask.INSTANCE, this, remainingDelay, SECONDS);
9292
} else {
9393
doConnect();
9494
}
@@ -168,8 +168,8 @@ private void doConnect() {
168168
log.debug(
169169
"Scheduling StatsD connection in {} seconds - {}", RETRY_DELAY, statsDAddress());
170170
}
171-
AgentTaskScheduler.INSTANCE.scheduleWithJitter(
172-
ConnectTask.INSTANCE, this, RETRY_DELAY, SECONDS);
171+
AgentTaskScheduler.getInstance()
172+
.scheduleWithJitter(ConnectTask.INSTANCE, this, RETRY_DELAY, SECONDS);
173173
} else {
174174
log.debug("Max retries have been reached. Will not attempt again.");
175175
}

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ public static void startDatadogTracer(InitializationTelemetry initTelemetry) thr
513513

514514
private static void registerLogManagerCallback(final ClassLoadCallBack callback) {
515515
// one minute fail-safe in case the class was unintentionally loaded during premain
516-
AgentTaskScheduler.INSTANCE.schedule(callback, 1, TimeUnit.MINUTES);
516+
AgentTaskScheduler.getInstance().schedule(callback, 1, TimeUnit.MINUTES);
517517
try {
518518
final Class<?> agentInstallerClass = AGENT_CLASSLOADER.loadClass(AGENT_INSTALLER_CLASS_NAME);
519519
final Method registerCallbackMethod =
@@ -526,7 +526,7 @@ private static void registerLogManagerCallback(final ClassLoadCallBack callback)
526526

527527
private static void registerMBeanServerBuilderCallback(final ClassLoadCallBack callback) {
528528
// one minute fail-safe in case the class was unintentionally loaded during premain
529-
AgentTaskScheduler.INSTANCE.schedule(callback, 1, TimeUnit.MINUTES);
529+
AgentTaskScheduler.getInstance().schedule(callback, 1, TimeUnit.MINUTES);
530530
try {
531531
final Class<?> agentInstallerClass = AGENT_CLASSLOADER.loadClass(AGENT_INSTALLER_CLASS_NAME);
532532
final Method registerCallbackMethod =
@@ -785,7 +785,7 @@ private static void startCrashTracking() {
785785
if (forceEarlyStart) {
786786
initializeCrashTrackingDefault();
787787
} else {
788-
AgentTaskScheduler.INSTANCE.execute(Agent::initializeCrashTrackingDefault);
788+
AgentTaskScheduler.getInstance().execute(Agent::initializeCrashTrackingDefault);
789789
}
790790
} else {
791791
// for Java 8 we are relying on JMX to give us the process PID
@@ -796,8 +796,8 @@ private static void startCrashTracking() {
796796

797797
private static void scheduleJmxStart(final int jmxStartDelay) {
798798
if (jmxStartDelay > 0) {
799-
AgentTaskScheduler.INSTANCE.scheduleWithJitter(
800-
new JmxStartTask(), jmxStartDelay, TimeUnit.SECONDS);
799+
AgentTaskScheduler.getInstance()
800+
.scheduleWithJitter(new JmxStartTask(), jmxStartDelay, TimeUnit.SECONDS);
801801
} else {
802802
startJmx();
803803
}
@@ -843,8 +843,8 @@ When getJmxStartDelay() is set to 0 we will attempt to initialize the JMX subsys
843843
*/
844844
if (getJmxStartDelay() == 0) {
845845
log.debug("Waiting for profiler initialization");
846-
AgentTaskScheduler.INSTANCE.scheduleWithJitter(
847-
PROFILER_INIT_AFTER_JMX, 500, TimeUnit.MILLISECONDS);
846+
AgentTaskScheduler.getInstance()
847+
.scheduleWithJitter(PROFILER_INIT_AFTER_JMX, 500, TimeUnit.MILLISECONDS);
848848
} else {
849849
log.debug("Initializing profiler");
850850
PROFILER_INIT_AFTER_JMX.run();

dd-java-agent/agent-builder/src/main/java/datadog/trace/agent/tooling/AgentInstaller.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,12 @@ public static void installBytebuddyAgent(final Instrumentation inst) {
8383
}
8484
int poolCleaningInterval = InstrumenterConfig.get().getResolverResetInterval();
8585
if (poolCleaningInterval > 0) {
86-
AgentTaskScheduler.INSTANCE.scheduleAtFixedRate(
87-
SharedTypePools::clear,
88-
poolCleaningInterval,
89-
Math.max(poolCleaningInterval, 10),
90-
TimeUnit.SECONDS);
86+
AgentTaskScheduler.getInstance()
87+
.scheduleAtFixedRate(
88+
SharedTypePools::clear,
89+
poolCleaningInterval,
90+
Math.max(poolCleaningInterval, 10),
91+
TimeUnit.SECONDS);
9192
}
9293
} else if (DEBUG) {
9394
log.debug("No target systems enabled, skipping instrumentation.");

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class SourceFileTrackingTransformer implements ClassFileTransformer {
2929

3030
private final ClassesToRetransformFinder finder;
3131
private final Queue<SourceFileItem> queue = new ConcurrentLinkedQueue<>();
32-
private final AgentTaskScheduler scheduler = AgentTaskScheduler.INSTANCE;
32+
private final AgentTaskScheduler scheduler = AgentTaskScheduler.getInstance();
3333
private final AtomicInteger queueSize = new AtomicInteger(0);
3434
private AgentTaskScheduler.Scheduled<Runnable> scheduled;
3535
// this field MUST only be used in flush() calling thread

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/codeorigin/DefaultCodeOriginRecorder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public class DefaultCodeOriginRecorder implements CodeOriginRecorder {
4848
private AgentTaskScheduler scheduler;
4949

5050
public DefaultCodeOriginRecorder(Config config, ConfigurationUpdater configurationUpdater) {
51-
this(config, configurationUpdater, AgentTaskScheduler.INSTANCE);
51+
this(config, configurationUpdater, AgentTaskScheduler.getInstance());
5252
}
5353

5454
public DefaultCodeOriginRecorder(

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/AbstractExceptionDebugger.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ public void handleException(Throwable t, AgentSpan span) {
9494
if (!applyConfigAsync) {
9595
applyExceptionConfiguration(fingerprint);
9696
} else {
97-
AgentTaskScheduler.INSTANCE.execute(() -> applyExceptionConfiguration(fingerprint));
97+
AgentTaskScheduler.getInstance()
98+
.execute(() -> applyExceptionConfiguration(fingerprint));
9899
}
99100
break;
100101
} else {

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/DebuggerSink.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class DebuggerSink {
3636
private final String tags;
3737
private final AtomicLong highRateDropped = new AtomicLong();
3838
private final int uploadFlushInterval;
39-
private final AgentTaskScheduler lowRateScheduler = AgentTaskScheduler.INSTANCE;
39+
private final AgentTaskScheduler lowRateScheduler = AgentTaskScheduler.getInstance();
4040
private volatile AgentTaskScheduler.Scheduled<DebuggerSink> lowRateScheduled;
4141
private volatile AgentTaskScheduler.Scheduled<DebuggerSink> flushIntervalScheduled;
4242
private volatile long currentLowRateFlushInterval = LOW_RATE_INITIAL_FLUSH_INTERVAL;

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/symbol/SymDBEnablement.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public void accept(ConfigKey configKey, byte[] content, PollingRateHinter pollin
5858
SymDbRemoteConfigRecord symDb = deserializeSymDb(content);
5959
if (symDb.isUploadSymbols()) {
6060
// can be long, make it async
61-
AgentTaskScheduler.INSTANCE.execute(this::startSymbolExtraction);
61+
AgentTaskScheduler.getInstance().execute(this::startSymbolExtraction);
6262
} else {
6363
stopSymbolExtraction();
6464
}

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/symbol/SymbolAggregator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ public SymbolAggregator(
6464

6565
public void start() {
6666
flushRemainingScopeScheduled =
67-
AgentTaskScheduler.INSTANCE.scheduleAtFixedRate(
68-
this::flushRemainingScopes, this, 0, 1, TimeUnit.SECONDS);
67+
AgentTaskScheduler.getInstance()
68+
.scheduleAtFixedRate(this::flushRemainingScopes, this, 0, 1, TimeUnit.SECONDS);
6969
scanJarsScheduled =
70-
AgentTaskScheduler.INSTANCE.scheduleAtFixedRate(
71-
this::scanQueuedJars, this, 0, 1, TimeUnit.SECONDS);
70+
AgentTaskScheduler.getInstance()
71+
.scheduleAtFixedRate(this::scanQueuedJars, this, 0, 1, TimeUnit.SECONDS);
7272
}
7373

7474
public void stop() {

0 commit comments

Comments
 (0)