Skip to content

Commit e858d8e

Browse files
Attempt to debug CI flaky timeout. DO NOT MERGE!
1 parent cfc9870 commit e858d8e

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/src/previewTest/groovy/StructuredConcurrencyTest.groovy

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,39 @@ import datadog.trace.agent.test.AgentTestRunner
22
import datadog.trace.api.Trace
33

44
import java.util.concurrent.Callable
5+
import java.util.concurrent.Executors
6+
import java.util.concurrent.ScheduledExecutorService
7+
import java.util.concurrent.ScheduledFuture
58
import java.util.concurrent.StructuredTaskScope
9+
import java.util.concurrent.TimeUnit
610

711
import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
812
import static datadog.trace.agent.test.utils.TraceUtils.runnableUnderTrace
913
import static java.time.Instant.now
1014

1115
class StructuredConcurrencyTest extends AgentTestRunner {
16+
ScheduledExecutorService scheduler
17+
ScheduledFuture<?> threadDumpTask
18+
19+
def setup() {
20+
scheduler = Executors.newSingleThreadScheduledExecutor()
21+
22+
threadDumpTask = scheduler.schedule({
23+
println "=== Thread Dump Triggered at ${new Date()} ==="
24+
Thread.getAllStackTraces().each { thread, stack ->
25+
println "Thread: ${thread.name}, daemon: ${thread.daemon}"
26+
stack.each { println "\tat ${it}" }
27+
}
28+
println "==============================================="
29+
}, 7, TimeUnit.MINUTES)
30+
}
31+
32+
def cleanup() {
33+
threadDumpTask?.cancel(false)
34+
scheduler?.shutdownNow()
35+
}
36+
37+
1238
/**
1339
* Tests the structured task scope with a single task.
1440
*/

dd-java-agent/instrumentation/lettuce-4/src/test/groovy/Lettuce4ClientTestBase.groovy

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ import datadog.trace.agent.test.utils.PortUtils
88
import redis.embedded.RedisServer
99
import spock.lang.Shared
1010

11+
import java.util.concurrent.Executors
12+
import java.util.concurrent.ScheduledExecutorService
13+
import java.util.concurrent.ScheduledFuture
14+
import java.util.concurrent.TimeUnit
15+
1116
import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
1217

1318
abstract class Lettuce4ClientTestBase extends VersionedNamingTestBase {
@@ -32,6 +37,9 @@ abstract class Lettuce4ClientTestBase extends VersionedNamingTestBase {
3237
@Shared
3338
RedisServer redisServer
3439

40+
ScheduledExecutorService scheduler
41+
ScheduledFuture<?> threadDumpTask
42+
3543
@Shared
3644
Map<String, String> testHashMap = [
3745
firstname: "John",
@@ -61,6 +69,18 @@ abstract class Lettuce4ClientTestBase extends VersionedNamingTestBase {
6169
}
6270

6371
def setup() {
72+
scheduler = Executors.newSingleThreadScheduledExecutor()
73+
74+
threadDumpTask = scheduler.schedule({
75+
println "=== Thread Dump Triggered at ${new Date()} ==="
76+
Thread.getAllStackTraces().each { thread, stack ->
77+
println "Thread: ${thread.name}, daemon: ${thread.daemon}"
78+
stack.each { println "\tat ${it}" }
79+
}
80+
println "==============================================="
81+
}, 7, TimeUnit.MINUTES)
82+
83+
6484
redisServer.start()
6585

6686
redisClient = RedisClient.create(embeddedDbUri)
@@ -79,6 +99,9 @@ abstract class Lettuce4ClientTestBase extends VersionedNamingTestBase {
7999
}
80100

81101
def cleanup() {
102+
threadDumpTask?.cancel(false)
103+
scheduler?.shutdownNow()
104+
82105
connection.close()
83106
redisClient.shutdown()
84107
redisServer.stop()

0 commit comments

Comments
 (0)