Repository navigation
Update PHP 8.6 ABI to 20261112 #4490
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -19,14 +19,14 @@ | |||||||||||||
| #include "telemetry_reaper.h" | ||||||||||||||
|
|
||||||||||||||
| #define MIN_API_VERSION 320151012 | ||||||||||||||
| #define MAX_API_VERSION 420260924 | ||||||||||||||
| #define MAX_API_VERSION 420261112 | ||||||||||||||
| #define MAX_INI_API_VERSION MAX_API_VERSION + 1 | ||||||||||||||
|
|
||||||||||||||
| #define PHP_70_VERSION 20151012 | ||||||||||||||
| #define PHP_71_VERSION 20160303 | ||||||||||||||
| #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. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
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.
Suggested change
React: 👍 useful · 👎 wrong · 😕 unclear · 👀 right, but not acting on it What each reaction means
🤖 Bits Code Review · Open Bits AI session There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
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.
Suggested change
React: 👍 useful · 👎 wrong · 😕 unclear · 👀 right, but not acting on it What each reaction means
🤖 Bits Code Review · Open Bits AI session There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
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.
Suggested change
React: 👍 useful · 👎 wrong · 😕 unclear · 👀 right, but not acting on it What each reaction means
🤖 Bits Code Review · Open Bits AI session |
||||||||||||||
|
|
||||||||||||||
| #define MIN_PHP_VERSION "7.0" | ||||||||||||||
| #define MAX_PHP_VERSION "8.6" | ||||||||||||||
|
|
||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On earlier PHP 8.6 release candidates using API
20260924, enablingDD_TRACE_DEBUGnow makesddloader_logv()take the pre-8.6 branch and pass achar *to_php_error_log(), even though those runtimes already require azend_string *. This can crash PHP during the initialREASON_STARTtelemetry 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 👍 / 👎.