[Bug]: PHP-FPM SIGABRT with SSI and AppSec enabled since 1.25.x
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 42/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- kubernetes, php
調査の方向性
SSI、PHP tracer 1.25.1、AppSec を有効にした状態、および記載された PHP 8.5.9 環境で PHP-FPM worker の SIGABRT を再現します。安定版の 1.24.2 の設定と AppSec を無効にした 1.25.1 の設定を比較し、問題が解決されたときに PHP-FPM が正常に起動し、APM トレースと AppSec の両方が維持されることを確認します。
索引モデルが issue の本文から書いたものです。
説明
Bug report
Summary
When Datadog PHP automatic instrumentation (Single Step Instrumentation / SSI) uses PHP tracer 1.25.x with AppSec enabled, PHP-FPM worker processes may abort with SIGABRT during startup or runtime. The Kubernetes pod and ArgoCD application can nevertheless remain Healthy/Running because the PHP-FPM master process remains alive and replaces the failed workers.
Disabling AppSec resolves the crash while PHP APM traces continue to be emitted.
Impact
The Kubernetes workload remains available and ArgoCD reports it as Healthy/Running. However, PHP-FPM worker processes may abort with SIGABRT, which can cause worker restarts, excessive logs, incomplete APM telemetry, and potentially intermittent request failures.
Environment
- Kubernetes (AWS EKS)
- Datadog Operator / DatadogAgent
v2alpha1 - Automatic instrumentation: SSI / Admission Controller
- PHP runtime: PHP-FPM, PHP
8.5.9NTS - Zend OPcache: enabled
- Datadog Agent versions tested:
7.81.2and7.83.1 - PHP tracer affected:
1.25.x - Datadog site:
datadoghq.eu
Actual behavior
When Datadog PHP automatic instrumentation (Single Step Instrumentation / SSI) uses PHP tracer 1.25.x with AppSec enabled, PHP-FPM worker processes may abort with SIGABRT during startup or runtime. The Kubernetes pod and ArgoCD application can nevertheless remain Healthy/Running because the PHP-FPM master process remains alive and replaces the failed workers.
Observed error:
mutex.cc : RAW: Check w->waitp->cond == nullptr failed:
Mutex::Fer while waiting on Condition
The PHP-FPM process terminates with SIGABRT.
Expected behavior
PHP-FPM pods should start normally when PHP APM and AppSec are both enabled through SSI.
Investigation
The crash was reproduced with Datadog Agent 7.81.2 and 7.83.1, so it does not appear tied to the Agent version.
PHP tracer 1.24.2 was stable in the same environment.
The issue occurs with the PHP tracer 1.25.x line when AppSec is enabled.
PHP-FPM uses a master process that forks workers. We suspect an interaction between this fork model and the sidecar/AppSec communication changes introduced in tracer 1.25.0.
Confirmed workaround
The crash no longer occurs with PHP tracer 1.25.1 when AppSec is disabled through SSI:
With this configuration:
PHP-FPM pods start normally.
PHP APM traces are still produced.
AppSec is disabled for the affected PHP workloads.
Questions
Is this a known regression involving PHP tracer 1.25.x, AppSec, and PHP-FPM?
Is the Mutex::Fer while waiting on Condition SIGABRT related to sidecar/AppSec implementation or fork handling?
Is DD_APPSEC_ENABLED=false the recommended workaround?
Is there a more targeted workaround that preserves AppSec?
Is there a planned fix or version in which AppSec can safely be re-enabled for PHP-FPM?
We can provide sanitized crash logs and DatadogAgent SSI configuration through our existing Datadog Support ticket. ``````
PHP version
8.5.9 NTS
Tracer or profiler version
1.25.1
Installed extensions
dd_library_loader 1.25.1
ddtrace 1.25.1
ddappsec 1.25.1
datadog-profiling 1.25.1
Zend OPcache 8.5.9
Output of phpinfo()
No response
Upgrading from
No response
- 主要言語
- PHP
- スター
- 558
- フォーク
- 190
- 平均マージ
- 2日 4時間
- マージ済み PR(30日)
- 96
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
DataDog/dd-trace-php のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
DataDog/dd-trace-php#4371 · コメント 5 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
DataDog/dd-trace-php#4366 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
🐛 bug
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
DataDog/dd-trace-php#4042 · コメント 2 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
feature-request
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
DataDog/dd-trace-php#4031 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
🐛 bug cat:app-crash
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
DataDog/dd-trace-php#3975 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
DataDog/dd-trace-php の issue をすべて見る
似ている issue
-
Awaiting Triage bug
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 2 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
openemr/openemr#14857 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
type: enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 82/100