Skip to content

Commit d700646

Browse files
committed
Race on late initializing crash tracking results JVM to crash
1 parent ca0e845 commit d700646

File tree

1 file changed

+6
-0
lines changed
  • dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap

1 file changed

+6
-0
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import java.net.MalformedURLException;
6464
import java.net.URISyntaxException;
6565
import java.net.URL;
66+
import java.nio.ByteBuffer;
6667
import java.security.CodeSource;
6768
import java.util.EnumSet;
6869
import java.util.concurrent.TimeUnit;
@@ -795,6 +796,11 @@ private static void startCrashTracking() {
795796
if (forceEarlyStart) {
796797
initializeCrashTrackingDefault();
797798
} else {
799+
// To workaround JDK-8345810, we want to initialize nio early,
800+
// which has dependence on libpthread. Creating a small nio ByteBuffer
801+
// to force nio initialization.
802+
ByteBuffer buffer = ByteBuffer.allocate(1);
803+
798804
AgentTaskScheduler.get().execute(Agent::initializeCrashTrackingDefault);
799805
}
800806
} else {

0 commit comments

Comments
 (0)