Repository navigation
Conversation
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a4eec10f51
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| #define PHP_72_VERSION 20170718 | ||
| #define PHP_80_VERSION 20200930 | ||
| #define PHP_86_VERSION 20260924 | ||
| #define PHP_86_VERSION 20261112 |
There was a problem hiding this comment.
Preserve the original ABI boundary for PHP 8.6 logging
On earlier PHP 8.6 release candidates using API 20260924, enabling DD_TRACE_DEBUG now makes ddloader_logv() take the pre-8.6 branch and pass a char * to _php_error_log(), even though those runtimes already require a zend_string *. This can crash PHP during the initial REASON_START telemetry call, before the loader can handle missing or incompatible extensions. Keep the logging-signature threshold at the API where that signature originally changed, independently of the new packaging ABI.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
The ABI update also moves a logging compatibility cutoff, causing earlier PHP 8.6 release candidates to pass the wrong argument type to PHP’s error logger when debug logging is enabled. The cutoff should retain its original value.
🤖 Bits Code Review · Commit a4eec10
| #define PHP_72_VERSION 20170718 | ||
| #define PHP_80_VERSION 20200930 | ||
| #define PHP_86_VERSION 20260924 | ||
| #define PHP_86_VERSION 20261112 |
There was a problem hiding this comment.
Preserve the logging cutoff for earlier PHP 8.6 runtimes
On earlier PHP 8.6 release candidates such as RC3, enabling DD_TRACE_DEBUG=1 now selects the legacy logging branch because their API number is 20260924. Those runtimes already require zend_string*, so _php_error_log() interprets a raw message buffer using the wrong layout, corrupting loader diagnostics. Startup logging occurs before package compatibility checks, so removing older extension binaries does not prevent this. Preserve the original logging cutoff independently of the maximum supported ABI.
| #define PHP_86_VERSION 20261112 | |
| #define PHP_86_VERSION 20260924 |
React: 👍 useful · 👎 wrong · 😕 unclear · 👀 right, but not acting on it
What each reaction means
- 👍 Useful: correct, and you're fixing it or will.
- 👎 Wrong: the finding is incorrect, for example the bug can't happen or the code was misread.
- 😕 Unclear: you can't tell what it means or why it matters.
- 👀 Right, not acting: correct, but intended, out of scope for this PR, a known risk, or too minor.
🤖 Bits Code Review · Open Bits AI session
❌ ErrorsYour PR has failed checks. Please review the issues below and take necessary action before merging. 🚦 156 Pipeline jobs failed
ℹ️ InfoNo other issues found (see more)❄️ No new flaky tests detected 🎯 Code Coverage (details) Useful? React with 👍 / 👎 This comment will be updated automatically if new data arrives.🔗 Commit SHA: b664cf3 | Docs | View more details | Give us feedback! |
a4eec10 to
870dc4d
Compare
There was a problem hiding this comment.
PHP 8.6 RC3 with debug logging now reaches a logging call with the wrong argument type, risking a startup crash. The AppSec integration configuration still selects that runtime and enables debug logging.
🤖 Bits Code Review · Commit 870dc4d
| #define PHP_72_VERSION 20170718 | ||
| #define PHP_80_VERSION 20200930 | ||
| #define PHP_86_VERSION 20260924 | ||
| #define PHP_86_VERSION 20261112 |
There was a problem hiding this comment.
Preserve the original logging-signature ABI cutoff
On PHP 8.6 RC3 (ABI 20260924) with DD_TRACE_DEBUG=1, this new cutoff makes ddloader_logv() pass a char buffer to _php_error_log(), which already expects a zend_string pointer. That invalid argument can crash PHP during the initial injection log. The AppSec integration configuration still selects RC3 and enables debug logging. Keep the logging-signature cutoff at 20260924 independently of the latest supported ABI.
| #define PHP_86_VERSION 20261112 | |
| #define PHP_86_VERSION 20260924 |
React: 👍 useful · 👎 wrong · 😕 unclear · 👀 right, but not acting on it
What each reaction means
- 👍 Useful: correct, and you're fixing it or will.
- 👎 Wrong: the finding is incorrect, for example the bug can't happen or the code was misread.
- 😕 Unclear: you can't tell what it means or why it matters.
- 👀 Right, not acting: correct, but intended, out of scope for this PR, a known risk, or too minor.
🤖 Bits Code Review · Open Bits AI session
8.6.0RC7 and final release have a new ABI version.
870dc4d to
b664cf3
Compare
There was a problem hiding this comment.
The ABI constant also controls the loader’s logging signature. Raising it makes debug logging on earlier PHP 8.6 builds pass an incompatible argument to PHP, potentially crashing during startup.
🤖 Bits Code Review · Commit b664cf3
| #define PHP_72_VERSION 20170718 | ||
| #define PHP_80_VERSION 20200930 | ||
| #define PHP_86_VERSION 20260924 | ||
| #define PHP_86_VERSION 20261112 |
There was a problem hiding this comment.
Preserve the logging cutoff for earlier PHP 8.6 builds
On earlier PHP 8.6 builds with API 20260924 and DD_TRACE_DEBUG=1, this change selects the char* logging call although _php_error_log() already expects zend_string*. The first startup message reaches this call before compatibility checks, potentially crashing PHP. AppSec images still pin RC3. Preserve the original logging cutoff independently of the updated artifact ABI.
| #define PHP_86_VERSION 20261112 | |
| #define PHP_86_VERSION 20260924 |
React: 👍 useful · 👎 wrong · 😕 unclear · 👀 right, but not acting on it
What each reaction means
- 👍 Useful: correct, and you're fixing it or will.
- 👎 Wrong: the finding is incorrect, for example the bug can't happen or the code was misread.
- 😕 Unclear: you can't tell what it means or why it matters.
- 👀 Right, not acting: correct, but intended, out of scope for this PR, a known risk, or too minor.
🤖 Bits Code Review · Open Bits AI session
Benchmarks [ tracer ]Benchmark execution time: 2026-11-13 02:55:07 Comparing candidate commit b664cf3 in PR branch Found 1 performance improvements and 0 performance regressions! Performance is the same for 221 metrics, 0 unstable metrics.
|
8.6.0RC7 and final release have a new ABI version.
Containers are already rebuilt.