JVM SIGSEGV crashes after upgrade from 1.61.1 to 1.62.0
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 静か
- 技術スタック
- java
- 領域
- devtools, performance
調査の方向性
まず、添付された logs.txt と、レポートで示されているクラッシュのエントリーポイント、特に JavaProfiler.dump0、AgentTaskScheduler、DefaultConfigurationPoller、shaded okhttp パスを確認します。1.61.1 と 1.62.0 の変更を比較し、その後 Java 25 で再現します。回帰が特定され、JVM がクラッシュしなくなったことを確認できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Tracer Version(s)
1.62.0
Java Version(s)
25
JVM Vendor
Eclipse Adoptium / Temurin
Bug Report
After upgrading dd-trace-java from 1.61.1 to 1.62.0, the JVM started crashing with SIGSEGV (and one UNKNOWN signal) on multiple tasks.
Reverting to 1.61.1 with no other changes made the crashes stop.
Crash tracking is enabled, and we have collected several distinct crash signatures. They cluster into three groups:
-
SIGSEGV inside the Datadog profiler native dump path:
Profiler::updateThreadName(jvmtiEnv*, JNIEnv, _jobject, bool)
-> jvmti_Deallocate
called from JavaProfiler.dump0 via the profiling system's periodic
snapshot task (AgentTaskScheduler$PeriodicTask). -
SIGSEGV in JIT inline-cache / wrong-method handling:
SharedRuntime::find_callee_info_helper
-> handle_ic_miss_helper / handle_wrong_method
Observed on multiple call sites, including:- the agent's own shaded okhttp during remote-config polling
(datadog.okhttp3...Http1Codec$FixedLengthSink.close, called from
DefaultConfigurationPoller.fetchConfiguration), seen repeatedly - a Micrometer StepMeterRegistry rollover scheduled task
(io.micrometer.core.instrument.step.StepTuple2.rollCount)
- the agent's own shaded okhttp during remote-config polling
-
JVM-internal crashes around the code cache / GC:
- nmethod::is_unloading -> DependencyContext::clean_unloading_dependents
on a G1 code-cache unloading worker - G1CodeRootSet::add(nmethod*) -> nmethod::oops_do -> register_nmethod
on a C1 CompileBroker thread installing a freshly compiled nmethod
(crashed inside concurrentHashTable.inline.hpp:684)
- nmethod::is_unloading -> DependencyContext::clean_unloading_dependents
All crashes occur either on a Datadog-managed thread or in code installed by the agent (its shaded okhttp). The stacks above come from dd-trace-java's own crashtracking output, which was enabled at the time.
hs_err_pid*.log files are not available: this is running on AWS ECS, and the crashing tasks were recycled before we could retrieve them.
Workaround: pinning back to 1.61.1 removes the crashes entirely.
Expected Behavior
Upgrading dd-trace-java from 1.61.1 to 1.62.0 should not cause JVM crashes.
Reproduction Code
No response
- 主要言語
- Java
- スター
- 736
- フォーク
- 364
- 平均マージ
- 3日 13時間
- マージ済み PR(30日)
- 213
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
DataDog/dd-trace-java のほかの issue
-
type: bug report
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
DataDog/dd-trace-java#12818 ·
メンテナーはふだん 2 日以内に返信
-
Update DEFAULT_HTTP_CLIENT_ERROR_STATUSES to include 5xx status codes再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープンtype: feature request
難易度 1/5 1〜3時間 初心者へのやさしさ 70/100
DataDog/dd-trace-java#10245 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
Startup ~2x slower with AOT class linking: agent retransforms ~22k preloaded classes (JDK 25, 1.67.0)対応中かも @mcculls が 2 日前に担当しました。 オープンtype: bug report
DataDog/dd-trace-java#12795 · 担当者 1 名 ·
メンテナーはふだん 2 日以内に返信
-
gRPC server instrumentations (grpc-1.5, armeria-grpc) don't make extracted W3C baggage current in the handler対応中かも @mcculls が 13 日前に担当しました。 オープンcomp: context propagation inst: grpc type: feature request
難易度 3/5 1〜2日 初心者へのやさしさ 78/100
DataDog/dd-trace-java#12654 · 担当者 1 名 ·
メンテナーはふだん 2 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 62/100
DataDog/dd-trace-java#12608 ·
メンテナーはふだん 2 日以内に返信
DataDog/dd-trace-java の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
utopia-rise/godot-jvm#1004 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
spring-projects/spring-grpc#442 ·
-
Expose numberOfPermits in RateLimiterEvent.toString() and the ratelimiterevents actuator DTO対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
resilience4j/resilience4j#2547 ·
メンテナーはふだん 9 日以内に返信
-
Clock.MakeDate continues execution and returns a rolled-over instant after dispatching error on invalid date対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
mit-cml/appinventor-sources#4155 ·
メンテナーはふだん 1 日以内に返信