-
Notifications
You must be signed in to change notification settings - Fork 426
Description
What happened?
Hello !
I've upgraded my Docker image from 1.9.1... to frankenphp:1.11.1-php8.5.2-bookworm and since when I stop or restart a container that had handled at least 1 HTTP request, I've got a crash.
It can be an issue for projects that are using blue/green deployments or horizontal scaling because containers will not stop gracefully.
I'm not used to Go development so I asked an LLM to lead an investigation to ensure the problem was not on my side, and then propose a clue here to see if it can help you.
According to it's "analyse" ARM64 architecture seems impacted due to a stricter signal management.
This is what it has proposed:
Root Cause
PR #2033 added runtime.Gosched() at the start of handleRequestWithRegularPHPThreads() to improve tail latency. During graceful shutdown:
- Final request arrives (health check, connection draining)
runtime.Gosched()yields control to scheduler- PHP thread shutdown begins while Go is yielded
- C layer disables sigaltstack during cleanup
- Go resumes from Gosched, expects sigaltstack configured
- PANIC on ARM64 (strict signal stack requirements)
Timeline visualization:
handleRequestWithRegularPHPThreads() → Gosched() yields
↓
PHP cleanup disables sigaltstack
↓
Go resumes, expects sigaltstack
↓
CRASH: "non-Go code disabled sigaltstack"
Solution
Check if ANY thread is in shutdown state before calling runtime.Gosched():
// Only yield if no threads are shutting down
// Prevents ARM64 sigaltstack race during cleanup
if !isAnyThreadShuttingDown() {
runtime.Gosched()
}
func isAnyThreadShuttingDown() bool {
regularThreadMu.RLock()
defer regularThreadMu.RUnlock()
for _, thread := range regularThreads {
state := thread.state.Get()
if state == state.ShuttingDown || state == state.Done {
return true
}
}
return false
}If I can help by any way to debug it further tell me.
TY for your time and consideration.
Build Type
Docker (Debian Bookworm)
Worker Mode
No
Operating System
macOS
CPU Architecture
Apple Silicon
PHP configuration
phpinfo()
PHP Version => 8.5.2
System => Linux 5b663fc7c974 6.12.54-linuxkit #1 SMP Tue Nov 4 21:21:47 UTC 2025 aarch64
Build Date => Jan 16 2026 23:20:06
Build System => Linux - Docker
Build Provider => https://github.com/docker-library/php
Configure Command => './configure' '--build=aarch64-linux-gnu' '--sysconfdir=/usr/local/etc' '--with-config-file-path=/usr/local/etc/php' '--with-config-file-scan-dir=/usr/local/etc/php/conf.d' '--enable-option-checking=fatal' '--with-mhash' '--with-pic' '--enable-mbstring' '--enable-mysqlnd' '--with-password-argon2' '--with-sodium=shared' '--with-pdo-sqlite=/usr' '--with-sqlite3=/usr' '--with-curl' '--with-iconv' '--with-openssl' '--with-readline' '--with-zlib' '--enable-phpdbg' '--enable-phpdbg-readline' '--with-pear' '--with-libdir=lib/aarch64-linux-gnu' '--enable-embed' '--enable-zts' '--disable-zend-signals' 'build_alias=aarch64-linux-gnu' 'PHP_UNAME=Linux - Docker' 'PHP_BUILD_PROVIDER=https://github.com/docker-library/php'
Server API => Command Line Interface
Virtual Directory Support => enabled
Configuration File (php.ini) Path => /usr/local/etc/php
Loaded Configuration File => /usr/local/etc/php/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/conf.d
Additional .ini files parsed => /usr/local/etc/php/conf.d/98-ddtrace.ini,
/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini,
/usr/local/etc/php/conf.d/docker-php-ext-gd.ini,
/usr/local/etc/php/conf.d/docker-php-ext-intl.ini,
/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini,
/usr/local/etc/php/conf.d/docker-php-ext-xsl.ini,
/usr/local/etc/php/conf.d/docker-php-ext-zip.ini
PHP API => 20250925
PHP Extension => 20250925
Zend Extension => 420250925
Zend Extension Build => API420250925,TS
PHP Extension Build => API20250925,TS
PHP Integer Size => 64 bits
Debug Build => no
Thread Safety => enabled
Thread API => POSIX Threads
Zend Signal Handling => disabled
Zend Memory Manager => disabled
Zend Multibyte Support => provided by mbstring
Zend Max Execution Timers => enabled
IPv6 Support => enabled
DTrace Support => disabled
Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3
Registered Stream Filters => zlib.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, convert.*, consumed, dechunk
This program makes use of the Zend Scripting Language Engine:
Zend Engine v4.5.2, Copyright (c) Zend Technologies
with Xdebug v3.5.0, Copyright (c) 2002-2025, by Derick Rethans
with Zend OPcache v8.5.2, Copyright (c), by Zend Technologies
with ddtrace v1.15.2, Copyright Datadog, by Datadog
with datadog-profiling v1.15.2, Copyright Datadog, by Datadog
with ddappsec v1.15.2, Copyright Datadog, by Datadog
_______________________________________________________________________
Configuration
bcmath
BCMath support => enabled
Directive => Local Value => Master Value
bcmath.scale => 0 => 0
Core
PHP Version => 8.5.2
Directive => Local Value => Master Value
allow_url_fopen => On => On
allow_url_include => Off => Off
arg_separator.input => & => &
arg_separator.output => & => &
auto_append_file => no value => no value
auto_globals_jit => On => On
auto_prepend_file => no value => no value
browscap => no value => no value
default_charset => UTF-8 => UTF-8
default_mimetype => text/html => text/html
disable_functions => no value => no value
display_errors => STDOUT => STDOUT
display_startup_errors => On => On
doc_root => no value => no value
docref_ext => no value => no value
docref_root => no value => no value
enable_dl => Off => Off
enable_post_data_reading => On => On
error_append_string => no value => no value
error_log => no value => no value
error_log_mode => 0644 => 0644
error_prepend_string => no value => no value
error_reporting => 30719 => 30719
expose_php => On => On
extension_dir => /usr/local/lib/php/extensions/no-debug-zts-20250925 => /usr/local/lib/php/extensions/no-debug-zts-20250925
fatal_error_backtraces => On => On
fiber.stack_size => no value => no value
file_uploads => On => On
hard_timeout => 2 => 2
highlight.comment => <span style="color: #FF8000">#FF8000</span> => <span style="color: #FF8000">#FF8000</span>
highlight.default => <span style="color: #0000BB">#0000BB</span> => <span style="color: #0000BB">#0000BB</span>
highlight.html => <span style="color: #000000">#000000</span> => <span style="color: #000000">#000000</span>
highlight.keyword => <span style="color: #007700">#007700</span> => <span style="color: #007700">#007700</span>
highlight.string => <span style="color: #DD0000">#DD0000</span> => <span style="color: #DD0000">#DD0000</span>
html_errors => Off => Off
ignore_repeated_errors => Off => Off
ignore_repeated_source => Off => Off
ignore_user_abort => Off => Off
implicit_flush => On => On
include_path => .:/usr/local/lib/php => .:/usr/local/lib/php
input_encoding => no value => no value
internal_encoding => no value => no value
log_errors => On => On
mail.add_x_header => Off => Off
mail.cr_lf_mode => crlf => crlf
mail.force_extra_parameters => no value => no value
mail.log => no value => no value
mail.mixed_lf_and_crlf => Off => Off
max_execution_time => 0 => 0
max_file_uploads => 20 => 20
max_input_nesting_level => 64 => 64
max_input_time => -1 => -1
max_input_vars => 1000 => 1000
max_memory_limit => -1 => -1
max_multipart_body_parts => -1 => -1
memory_limit => 256M => 256M
open_basedir => no value => no value
output_buffering => 0 => 0
output_encoding => no value => no value
output_handler => no value => no value
post_max_size => 100M => 100M
precision => 14 => 14
realpath_cache_size => 16M => 16M
realpath_cache_ttl => 600 => 600
register_argc_argv => Off => Off
report_memleaks => On => On
report_zend_debug => Off => Off
request_order => GP => GP
sendmail_from => no value => no value
sendmail_path => /usr/sbin/sendmail -t -i => /usr/sbin/sendmail -t -i
serialize_precision => -1 => -1
short_open_tag => Off => Off
SMTP => localhost => localhost
smtp_port => 25 => 25
sys_temp_dir => no value => no value
syslog.facility => LOG_USER => LOG_USER
syslog.filter => no-ctrl => no-ctrl
syslog.ident => php => php
unserialize_callback_func => no value => no value
upload_max_filesize => 100M => 100M
upload_tmp_dir => no value => no value
user_dir => no value => no value
user_ini.cache_ttl => 300 => 300
user_ini.filename => .user.ini => .user.ini
variables_order => GPCS => GPCS
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off
zend.assertions => 1 => 1
zend.detect_unicode => On => On
zend.enable_gc => On => On
zend.exception_ignore_args => Off => Off
zend.exception_string_param_max_len => 15 => 15
zend.max_allowed_stack_size => 0 => 0
zend.multibyte => Off => Off
zend.reserved_stack_size => 0 => 0
zend.script_encoding => no value => no value
ctype
ctype functions => enabled
curl
cURL support => enabled
cURL Information => 7.88.1
Age => 10
Features
AsynchDNS => Yes
CharConv => No
Debug => No
GSS-Negotiate => No
IDN => Yes
IPv6 => Yes
krb4 => No
Largefile => Yes
libz => Yes
NTLM => Yes
NTLMWB => Yes
SPNEGO => Yes
SSL => Yes
SSPI => No
TLS-SRP => Yes
HTTP2 => Yes
GSSAPI => Yes
KERBEROS5 => Yes
UNIX_SOCKETS => Yes
PSL => Yes
HTTPS_PROXY => Yes
MULTI_SSL => No
BROTLI => Yes
ALTSVC => Yes
HTTP3 => No
UNICODE => No
ZSTD => Yes
HSTS => Yes
GSASL => No
Protocols => dict, file, ftp, ftps, gopher, gophers, http, https, imap, imaps, ldap, ldaps, mqtt, pop3, pop3s, rtmp, rtmpe, rtmps, rtmpt, rtmpte, rtmpts, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
Host => aarch64-unknown-linux-gnu
SSL Version => OpenSSL/3.0.18
ZLib Version => 1.2.13
libSSH Version => libssh2/1.10.0
Directive => Local Value => Master Value
curl.cainfo => no value => no value
datadog-profiling
Version => 1.15.2
Profiling Enabled => true
Profiling Experimental Features Enabled => false
Experimental CPU Time Profiling Enabled => true
Allocation Profiling Enabled => true
Timeline Enabled => true
Exception Profiling Enabled => true
I/O Profiling Enabled => false
Endpoint Collection Enabled => true
Platform's CPU Time API Works => true
Profiling Log Level => off
Profiling Agent Endpoint => http://localhost:8126/
Application's Environment (DD_ENV) =>
Application's Service (DD_SERVICE) => cli.command
Application's Version (DD_VERSION) =>
Directive => Local Value => Master Value
datadog.profiling.allocation_enabled => On => On
datadog.profiling.allocation_sampling_distance => 4194304 => 4194304
datadog.profiling.enabled => On => On
datadog.profiling.endpoint_collection_enabled => On => On
datadog.profiling.exception_enabled => On => On
datadog.profiling.exception_message_enabled => Off => Off
datadog.profiling.exception_sampling_distance => 100 => 100
datadog.profiling.experimental_allocation_enabled => On => On
datadog.profiling.experimental_cpu_enabled => On => On
datadog.profiling.experimental_cpu_time_enabled => On => On
datadog.profiling.experimental_exception_enabled => On => On
datadog.profiling.experimental_exception_sampling_distance => 100 => 100
datadog.profiling.experimental_features_enabled => Off => Off
datadog.profiling.experimental_io_enabled => Off => Off
datadog.profiling.experimental_timeline_enabled => On => On
datadog.profiling.log_level => off => off
datadog.profiling.output_pprof => no value => no value
datadog.profiling.timeline_enabled => On => On
datadog.profiling.walltime_enabled => On => On
date
date/time support => enabled
timelib version => 2022.14
"Olson" Timezone Database Version => 2025.2
Timezone Database => internal
Default timezone => UTC
Directive => Local Value => Master Value
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.833333 => 90.833333
date.sunset_zenith => 90.833333 => 90.833333
date.timezone => UTC => UTC
ddappsec
Datadog PHP AppSec extension
(c) Datadog 2021
State managed by remote config => Yes
Current state => Not configured
Version => 1.15.2
Connected to helper? => No
Directive => Local Value => Master Value
datadog.api_security_enabled => On => On
datadog.api_security_sample_delay => 30.0 => 30.0
datadog.appsec.auto_user_instrumentation_mode => ident => ident
datadog.appsec.automated_user_events_tracking => ident => ident
datadog.appsec.automated_user_events_tracking_enabled => On => On
datadog.appsec.cli_start_on_rinit => Off => Off
datadog.appsec.enabled => Off => Off
datadog.appsec.extra_headers => no value => no value
datadog.appsec.helper_launch => On => On
datadog.appsec.helper_log_file => /dev/null => /dev/null
datadog.appsec.helper_log_level => info => info
datadog.appsec.helper_path => /opt/datadog/dd-library/1.15.2/lib/libddappsec-helper.so => /opt/datadog/dd-library/1.15.2/lib/libddappsec-helper.so
datadog.appsec.helper_runtime_path => /tmp => /tmp
datadog.appsec.http_blocked_template_html => no value => no value
datadog.appsec.http_blocked_template_json => no value => no value
datadog.appsec.log_file => php_error_reporting => php_error_reporting
datadog.appsec.log_level => warn => warn
datadog.appsec.max_body_buff_size => 524288 => 524288
datadog.appsec.max_stack_trace_depth => 32 => 32
datadog.appsec.max_stack_traces => 2 => 2
datadog.appsec.obfuscation_parameter_key_regexp => (?i)pass|pw(?:or)?d|secret|(?:api|private|public|access)[_-]?key|token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)|bearer|authorization|jsessionid|phpsessid|asp\.net[_-]sessionid|sid|jwt => (?i)pass|pw(?:or)?d|secret|(?:api|private|public|access)[_-]?key|token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)|bearer|authorization|jsessionid|phpsessid|asp\.net[_-]sessionid|sid|jwt
datadog.appsec.obfuscation_parameter_value_regexp => (?i)(?:p(?:ass)?w(?:or)?d|pass(?:[_-]?phrase)?|secret(?:[_-]?key)?|(?:(?:api|private|public|access)[_-]?)key(?:[_-]?id)?|(?:(?:auth|access|id|refresh)[_-]?)?token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?|jsessionid|phpsessid|asp\.net(?:[_-]|-)sessionid|sid|jwt)(?:\s*=([^;&]+)|"\s*:\s*("[^"]+"|\d+))|bearer\s+([a-z0-9\._\-]+)|token\s*:\s*([a-z0-9]{13})|gh[opsu]_([0-9a-zA-Z]{36})|ey[I-L][\w=-]+\.(ey[I-L][\w=-]+(?:\.[\w.+\/=-]+)?)|[\-]{5}BEGIN[a-z\s]+PRIVATE\sKEY[\-]{5}([^\-]+)[\-]{5}END[a-z\s]+PRIVATE\sKEY|ssh-rsa\s*([a-z0-9\/\.+]{100,}) => (?i)(?:p(?:ass)?w(?:or)?d|pass(?:[_-]?phrase)?|secret(?:[_-]?key)?|(?:(?:api|private|public|access)[_-]?)key(?:[_-]?id)?|(?:(?:auth|access|id|refresh)[_-]?)?token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?|jsessionid|phpsessid|asp\.net(?:[_-]|-)sessionid|sid|jwt)(?:\s*=([^;&]+)|"\s*:\s*("[^"]+"|\d+))|bearer\s+([a-z0-9\._\-]+)|token\s*:\s*([a-z0-9]{13})|gh[opsu]_([0-9a-zA-Z]{36})|ey[I-L][\w=-]+\.(ey[I-L][\w=-]+(?:\.[\w.+\/=-]+)?)|[\-]{5}BEGIN[a-z\s]+PRIVATE\sKEY[\-]{5}([^\-]+)[\-]{5}END[a-z\s]+PRIVATE\sKEY|ssh-rsa\s*([a-z0-9\/\.+]{100,})
datadog.appsec.rules => no value => no value
datadog.appsec.stack_trace_enabled => On => On
datadog.appsec.testing => Off => Off
datadog.appsec.testing_abort_rinit => Off => Off
datadog.appsec.testing_helper_metrics => Off => Off
datadog.appsec.testing_raw_body => Off => Off
datadog.appsec.trace_rate_limit => 100 => 100
datadog.appsec.waf_timeout => 10000 => 10000
datadog.extra_services => no value => no value
datadog.remote_config_poll_interval => 1000 => 1000
ddtrace
Datadog PHP tracer extension
For help, check out the documentation at https://docs.datadoghq.com/tracing/languages/php/
(c) Datadog 2020
Datadog tracing support => enabled
Version => 1.15.2
DATADOG TRACER CONFIGURATION => {
"date": "2026-01-22T14:26:08Z",
"os_name": "Linux 5b663fc7c974 6.12.54-linuxkit #1 SMP Tue Nov 4 21:21:47 UTC 2025 aarch64",
"os_version": "6.12.54-linuxkit",
"version": "1.15.2",
"lang": "php",
"lang_version": "8.5.0RC3",
"env": null,
"enabled": true,
"service": null,
"enabled_cli": true,
"agent_url": "http:\/\/localhost:8126",
"debug": false,
"analytics_enabled": false,
"sample_rate": -1,
"sampling_rules": [],
"tags": [],
"service_mapping": [],
"distributed_tracing_enabled": true,
"dd_version": null,
"architecture": "aarch64",
"instrumentation_telemetry_enabled": true,
"sapi": "cli",
"datadog.trace.sources_path": "\/opt\/datadog\/dd-library\/1.15.2\/dd-trace-sources\/src",
"open_basedir_configured": false,
"uri_fragment_regex": null,
"uri_mapping_incoming": null,
"uri_mapping_outgoing": null,
"auto_flush_enabled": true,
"generate_root_span": true,
"http_client_split_by_domain": false,
"measure_compile_time": true,
"report_hostname_on_root_span": false,
"traced_internal_functions": null,
"enabled_from_env": true,
"opcache.file_cache": null,
"sidecar_trace_sender": true,
"loaded_by_ssi": false,
"agent_error": "Failed to connect to localhost port 8126 after 0 ms: Couldn't connect to server"
}
Diagnostics
agent_error => Failed to connect to localhost port 8126 after 0 ms: Couldn't connect to server
Diagnostic checks => failed
Directive => Local Value => Master Value
datadog[Removed...]
dom
DOM/XML => enabled
DOM/XML API Version => 20031129
libxml Version => 2.9.14
HTML Support => enabled
XPath Support => enabled
XPointer Support => enabled
Schema Support => enabled
RelaxNG Support => enabled
fileinfo
fileinfo support => enabled
libmagic => 5.46
filter
Input Validation and Filtering => enabled
Directive => Local Value => Master Value
filter.default => unsafe_raw => unsafe_raw
filter.default_flags => no value => no value
gd
GD Support => enabled
GD Version => bundled (2.1.0 compatible)
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.12.1
GIF Read Support => enabled
GIF Create Support => enabled
JPEG Support => enabled
libJPEG Version => 6b
PNG Support => enabled
libPNG Version => 1.6.39
WBMP Support => enabled
XPM Support => enabled
libXpm Version => 30411
XBM Support => enabled
WebP Support => enabled
BMP Support => enabled
AVIF Support => enabled
TGA Read Support => enabled
Directive => Local Value => Master Value
gd.jpeg_ignore_warning => On => On
hash
hash support => enabled
Hashing Engines => md2 md4 md5 sha1 sha224 sha256 sha384 sha512/224 sha512/256 sha512 sha3-224 sha3-256 sha3-384 sha3-512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b crc32c fnv132 fnv1a32 fnv164 fnv1a64 joaat murmur3a murmur3c murmur3f xxh32 xxh64 xxh3 xxh128 haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5
MHASH support => Enabled
MHASH API Version => Emulated Support
iconv
iconv support => enabled
iconv implementation => glibc
iconv library version => 2.36
Directive => Local Value => Master Value
iconv.input_encoding => no value => no value
iconv.internal_encoding => no value => no value
iconv.output_encoding => no value => no value
intl
Internationalization support => enabled
ICU version => 72.1
ICU Data version => 72.1
ICU TZData version => 2022e
ICU Unicode version => 15.0
Directive => Local Value => Master Value
intl.default_locale => no value => no value
intl.error_level => 0 => 0
intl.use_exceptions => Off => Off
json
json support => enabled
lexbor
Lexbor support => active
Lexbor version => 2.5.0
libxml
libXML support => active
libXML Compiled Version => 2.9.14
libXML Loaded Version => 20914
libXML streams => enabled
mbstring
Multibyte Support => enabled
Multibyte string engine => libmbfl
HTTP input encoding translation => disabled
libmbfl version => 1.3.2
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Multibyte (japanese) regex support => enabled
Multibyte regex (oniguruma) version => 6.9.8
Directive => Local Value => Master Value
mbstring.detect_order => no value => no value
mbstring.encoding_translation => Off => Off
mbstring.http_input => no value => no value
mbstring.http_output => no value => no value
mbstring.http_output_conv_mimetypes => ^(text/|application/xhtml\+xml) => ^(text/|application/xhtml\+xml)
mbstring.internal_encoding => no value => no value
mbstring.language => neutral => neutral
mbstring.regex_retry_limit => 1000000 => 1000000
mbstring.regex_stack_limit => 100000 => 100000
mbstring.strict_detection => Off => Off
mbstring.substitute_character => no value => no value
mysqlnd
mysqlnd => enabled
Version => mysqlnd 8.5.2
Compression => supported
core SSL => supported
extended SSL => supported
Command buffer size => 4096
Read buffer size => 32768
Read timeout => 86400
Collecting statistics => Yes
Collecting memory statistics => Yes
Tracing => n/a
Loaded plugins => mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_caching_sha2_password,auth_plugin_sha256_password
API Extensions =>
openssl
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 3.0.18 30 Sep 2025
OpenSSL Header Version => OpenSSL 3.0.18 30 Sep 2025
Openssl default config => /usr/lib/ssl/openssl.cnf
Directive => Local Value => Master Value
openssl.cafile => no value => no value
openssl.capath => no value => no value
openssl.libctx => custom => custom
pcre
PCRE (Perl Compatible Regular Expressions) Support => enabled
PCRE Library Version => 10.44 2024-06-07
PCRE Unicode Version => 15.0.0
PCRE JIT Support => enabled
PCRE JIT Target => ARM-64 64bit (little endian + unaligned)
Directive => Local Value => Master Value
pcre.backtrack_limit => 1000000 => 1000000
pcre.jit => On => On
pcre.recursion_limit => 100000 => 100000
PDO
PDO support => enabled
PDO drivers => sqlite, pgsql
pdo_pgsql
PDO Driver for PostgreSQL => enabled
PostgreSQL(libpq) Version => 15.15
pdo_sqlite
PDO Driver for SQLite 3.x => enabled
SQLite Library => 3.40.1
Phar
Phar: PHP Archive support => enabled
Phar API version => 1.1.1
Phar-based phar archives => enabled
Tar-based phar archives => enabled
ZIP-based phar archives => enabled
gzip compression => enabled
bzip2 compression => disabled (install ext/bz2)
Native OpenSSL support => enabled
Phar based on pear/PHP_Archive, original concept by Davey Shafik.
Phar fully realized by Gregory Beaver and Marcus Boerger.
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.
Directive => Local Value => Master Value
phar.cache_list => no value => no value
phar.readonly => On => On
phar.require_hash => On => On
posix
POSIX support => enabled
random
Version => 8.5.2
readline
Readline Support => enabled
Readline library => 8.2
Directive => Local Value => Master Value
cli.pager => no value => no value
cli.prompt => \b \> => \b \>
Reflection
Reflection => enabled
session
Session Support => enabled
Registered save handlers => files user
Registered serializer handlers => php_serialize php php_binary
Directive => Local Value => Master Value
session.auto_start => Off => Off
session.cache_expire => 180 => 180
session.cache_limiter => nocache => nocache
session.cookie_domain => no value => no value
session.cookie_httponly => Off => Off
session.cookie_lifetime => 0 => 0
session.cookie_partitioned => Off => Off
session.cookie_path => / => /
session.cookie_samesite => no value => no value
session.cookie_secure => Off => Off
session.gc_divisor => 1000 => 1000
session.gc_maxlifetime => 1440 => 1440
session.gc_probability => 1 => 1
session.lazy_write => On => On
session.name => PHPSESSID => PHPSESSID
session.referer_check => no value => no value
session.save_handler => files => files
session.save_path => no value => no value
session.serialize_handler => php => php
session.sid_bits_per_character => 4 => 4
session.sid_length => 32 => 32
session.upload_progress.cleanup => On => On
session.upload_progress.enabled => On => On
session.upload_progress.freq => 1% => 1%
session.upload_progress.min_freq => 1 => 1
session.upload_progress.name => PHP_SESSION_UPLOAD_PROGRESS => PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix => upload_progress_ => upload_progress_
session.use_cookies => On => On
session.use_only_cookies => On => On
session.use_strict_mode => Off => Off
session.use_trans_sid => Off => Off
SimpleXML
SimpleXML support => enabled
Schema support => enabled
sodium
sodium support => enabled
libsodium headers version => 1.0.18
libsodium library version => 1.0.18
SPL
SPL support => enabled
Interfaces => OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException
sqlite3
SQLite3 support => enabled
SQLite Library => 3.40.1
Directive => Local Value => Master Value
sqlite3.defensive => On => On
sqlite3.extension_dir => no value => no value
standard
Dynamic Library Support => enabled
Path to sendmail => /usr/sbin/sendmail -t -i
Directive => Local Value => Master Value
assert.active => On => On
assert.bail => Off => Off
assert.callback => no value => no value
assert.exception => On => On
assert.warning => On => On
auto_detect_line_endings => Off => Off
default_socket_timeout => 60 => 60
from => no value => no value
session.trans_sid_hosts => no value => no value
session.trans_sid_tags => a=href,area=href,frame=src,form= => a=href,area=href,frame=src,form=
unserialize_max_depth => 4096 => 4096
url_rewriter.hosts => no value => no value
url_rewriter.tags => form= => form=
user_agent => no value => no value
tokenizer
Tokenizer Support => enabled
uri
URI support => active
uriparser bundled version => 1.0.0
xdebug
__ __ _ _
\ \ / / | | | |
\ V / __| | ___| |__ _ _ __ _
> < / _` |/ _ \ '_ \| | | |/ _` |
/ . \ (_| | __/ |_) | |_| | (_| |
/_/ \_\__,_|\___|_.__/ \__,_|\__, |
__/ |
|___/
Version => 3.5.0
Support Xdebug on Patreon, GitHub, or as a business: https://xdebug.org/support
Enabled Features (through 'XDEBUG_MODE' env variable)
Feature => Enabled/Disabled
Development Helpers => ✘ disabled
Coverage => ✘ disabled
GC Stats => ✘ disabled
Profiler => ✘ disabled
Step Debugger => ✔ enabled
Tracing => ✘ disabled
Optional Features
Compressed File Support => no
Clock Source => clock_gettime
TSC Clock Source => unavailable
'xdebug://gateway' pseudo-host support => yes
'xdebug://nameserver' pseudo-host support => yes
Systemd Private Temp Directory => not enabled
Debugger => enabled
IDE Key => PHPSTORM
Directive => Local Value => Master Value
xdebug.auto_trace => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.cli_color => 0 => 0
xdebug.client_discovery_header => HTTP_X_FORWARDED_FOR,REMOTE_ADDR => HTTP_X_FORWARDED_FOR,REMOTE_ADDR
xdebug.client_host => host.docker.internal => localhost
xdebug.client_port => 9003 => 9003
xdebug.cloud_id => no value => no value
xdebug.collect_assignments => Off => Off
xdebug.collect_includes => (setting removed in Xdebug 3) => (setting removed in Xdebug 3)
xdebug.collect_params => On => On
xdebug.collect_return => Off => Off
xdebug.collect_vars => (setting removed in Xdebug 3) => (setting removed in Xdebug 3)
xdebug.connect_timeout_ms => 200 => 200
xdebug.control_socket => off => off
xdebug.coverage_enable => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.default_enable => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.discover_client_host => Off => Off
xdebug.dump.COOKIE => no value => no value
xdebug.dump.ENV => no value => no value
xdebug.dump.FILES => no value => no value
xdebug.dump.GET => no value => no value
xdebug.dump.POST => no value => no value
xdebug.dump.REQUEST => no value => no value
xdebug.dump.SERVER => no value => no value
xdebug.dump.SESSION => no value => no value
xdebug.dump_globals => On => On
xdebug.dump_once => On => On
xdebug.dump_undefined => Off => Off
xdebug.file_link_format => no value => no value
xdebug.filename_format => no value => no value
xdebug.force_display_errors => Off => Off
xdebug.force_error_reporting => 0 => 0
xdebug.gc_stats_enable => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.gc_stats_output_dir => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.gc_stats_output_name => gcstats.%p => gcstats.%p
xdebug.halt_level => 0 => 0
xdebug.idekey => PHPSTORM => no value
xdebug.log => no value => no value
xdebug.log_level => 7 => 7
xdebug.max_nesting_level => 512 => 512
xdebug.max_stack_frames => -1 => -1
xdebug.mode => no value => no value
xdebug.output_dir => /tmp => /tmp
xdebug.overload_var_dump => (setting removed in Xdebug 3) => (setting removed in Xdebug 3)
xdebug.path_mapping => 0 => 0
xdebug.profiler_append => Off => Off
xdebug.profiler_enable => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.profiler_enable_trigger => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.profiler_enable_trigger_value => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.profiler_output_dir => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.profiler_output_name => cachegrind.out.%p => cachegrind.out.%p
xdebug.remote_autostart => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.remote_connect_back => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.remote_enable => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.remote_host => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.remote_log => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.remote_log_level => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.remote_mode => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.remote_port => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.remote_timeout => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.scream => Off => Off
xdebug.show_error_trace => Off => Off
xdebug.show_exception_trace => Off => Off
xdebug.show_local_vars => Off => Off
xdebug.show_mem_delta => (setting removed in Xdebug 3) => (setting removed in Xdebug 3)
xdebug.start_upon_error => default => default
xdebug.start_with_request => default => default
xdebug.trace_enable_trigger => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.trace_enable_trigger_value => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.trace_format => 0 => 0
xdebug.trace_options => 0 => 0
xdebug.trace_output_dir => (setting renamed in Xdebug 3) => (setting renamed in Xdebug 3)
xdebug.trace_output_name => trace.%c => trace.%c
xdebug.trigger_value => no value => no value
xdebug.use_compression => 0 => 0
xdebug.var_display_max_children => 128 => 128
xdebug.var_display_max_data => 512 => 512
xdebug.var_display_max_depth => 3 => 3
xml
XML Support => active
XML Namespace Support => active
libxml2 Version => 2.9.14
xmlreader
XMLReader => enabled
xmlwriter
XMLWriter => enabled
xsl
XSL => enabled
libxslt Version => 1.1.35
libxslt compiled against libxml Version => 2.9.14
EXSLT => enabled
libexslt Version => 0.8.20
Zend OPcache
Opcode Caching => Up and Running
Optimization => Disabled
SHM Cache => Enabled
File Cache => Disabled
JIT => Disabled
Startup => OK
Shared memory model => mmap
Cache hits => 0
Cache misses => 0
Used memory => 26727656
Free memory => 107490072
Wasted memory => 0
Interned Strings Used memory => 4652864
Interned Strings Free memory => 20512960
Cached scripts => 0
Cached keys => 0
Max keys => 32531
OOM restarts => 0
Hash keys restarts => 0
Manual restarts => 0
Start time => 2026-01-22T14:26:08+0000
Last restart time => none
Last force restart time => none
Directive => Local Value => Master Value
opcache.blacklist_filename => no value => no value
opcache.dups_fix => Off => Off
opcache.enable => On => On
opcache.enable_cli => On => On
opcache.enable_file_override => Off => Off
opcache.error_log => no value => no value
opcache.file_cache => no value => no value
opcache.file_cache_consistency_checks => On => On
opcache.file_cache_only => Off => Off
opcache.file_cache_read_only => Off => Off
opcache.file_update_protection => 2 => 2
opcache.force_restart_timeout => 180 => 180
opcache.huge_code_pages => Off => Off
opcache.interned_strings_buffer => 24 => 24
opcache.jit => disable => disable
opcache.jit_bisect_limit => 0 => 0
opcache.jit_blacklist_root_trace => 16 => 16
opcache.jit_blacklist_side_trace => 8 => 8
opcache.jit_buffer_size => 64M => 64M
opcache.jit_debug => 0 => 0
opcache.jit_hot_func => 127 => 127
opcache.jit_hot_loop => 61 => 61
opcache.jit_hot_return => 8 => 8
opcache.jit_hot_side_exit => 8 => 8
opcache.jit_max_exit_counters => 8192 => 8192
opcache.jit_max_loop_unrolls => 8 => 8
opcache.jit_max_polymorphic_calls => 2 => 2
opcache.jit_max_recursive_calls => 2 => 2
opcache.jit_max_recursive_returns => 2 => 2
opcache.jit_max_root_traces => 1024 => 1024
opcache.jit_max_side_traces => 128 => 128
opcache.jit_max_trace_length => 1024 => 1024
opcache.jit_prof_threshold => 0.005 => 0.005
opcache.lockfile_path => /tmp => /tmp
opcache.log_verbosity_level => 1 => 1
opcache.max_accelerated_files => 20000 => 20000
opcache.max_file_size => 0 => 0
opcache.max_wasted_percentage => 5 => 5
opcache.memory_consumption => 128 => 128
opcache.opt_debug_level => 0 => 0
opcache.optimization_level => 0 => 0x7FFEBFFF
opcache.preferred_memory_model => no value => no value
opcache.preload => no value => no value
opcache.preload_user => no value => no value
opcache.protect_memory => Off => Off
opcache.record_warnings => Off => Off
opcache.restrict_api => no value => no value
opcache.revalidate_freq => 2 => 2
opcache.revalidate_path => Off => Off
opcache.save_comments => On => On
opcache.use_cwd => On => On
opcache.validate_permission => Off => Off
opcache.validate_root => Off => Off
opcache.validate_timestamps => On => On
zip
Zip => enabled
Zip version => 1.22.7
Libzip version => 1.7.3
BZIP2 compression => Yes
XZ compression => No
ZSTD compression => No
AES-128 encryption => Yes
AES-192 encryption => Yes
AES-256 encryption => Yes
zlib
ZLib Support => enabled
Stream Wrapper => compress.zlib://
Stream Filter => zlib.inflate, zlib.deflate
Compiled Version => 1.2.13
Linked Version => 1.2.13
Directive => Local Value => Master Value
zlib.output_compression => Off => Off
zlib.output_compression_level => -1 => -1
zlib.output_handler => no value => no value
Additional Modules
Module Name
Environment
Variable => Value
HOSTNAME => 5b663fc7c974
PHP_INI_DIR => /usr/local/etc/php
HOME => /root
GODEBUG => cgocheck=0
XDEBUG_CONFIG => client_host=host.docker.internal
PHP_LDFLAGS => -Wl,-O1 -pie
PHP_CFLAGS => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_VERSION => 8.5.2
GPG_KEYS => 1198C0117593497A5EC5C199286AF1F9897469DC 49D9AF6BC72A80D6691719C8AA23F5BE9C7097D4 D95C03BC702BE9515344AE3374E44BC9067701A5
PHP_CPPFLAGS => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_ASC_URL => https://www.php.net/distributions/php-8.5.2.tar.xz.asc
COMPOSER_ALLOW_SUPERUSER => 1
PHP_URL => https://www.php.net/distributions/php-8.5.2.tar.xz
TERM => xterm
XDEBUG_MODE => debug
PATH => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
XDG_CONFIG_HOME => /config
XDG_DATA_HOME => /data
APP_ENV_NAME => local
PHPIZE_DEPS => autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c
APP_ENV => dev
PWD => /app
PHP_SHA256 => cb75a9b00a2806f7390dd64858ef42a47b443b3475769c8af6af33a18b1381f1
SERVER_PORT => 80
LOG_MODE => file
SERVER_NAME => :80
PHP Variables
Variable => Value
$_SERVER['HOSTNAME'] => 5b663fc7c974
$_SERVER['PHP_INI_DIR'] => /usr/local/etc/php
$_SERVER['HOME'] => /root
$_SERVER['GODEBUG'] => cgocheck=0
$_SERVER['XDEBUG_CONFIG'] => client_host=host.docker.internal
$_SERVER['PHP_LDFLAGS'] => -Wl,-O1 -pie
$_SERVER['PHP_CFLAGS'] => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
$_SERVER['PHP_VERSION'] => 8.5.2
$_SERVER['GPG_KEYS'] => 1198C0117593497A5EC5C199286AF1F9897469DC 49D9AF6BC72A80D6691719C8AA23F5BE9C7097D4 D95C03BC702BE9515344AE3374E44BC9067701A5
$_SERVER['PHP_CPPFLAGS'] => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
$_SERVER['PHP_ASC_URL'] => https://www.php.net/distributions/php-8.5.2.tar.xz.asc
$_SERVER['COMPOSER_ALLOW_SUPERUSER'] => 1
$_SERVER['PHP_URL'] => https://www.php.net/distributions/php-8.5.2.tar.xz
$_SERVER['TERM'] => xterm
$_SERVER['XDEBUG_MODE'] => debug
$_SERVER['PATH'] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$_SERVER['XDG_CONFIG_HOME'] => /config
$_SERVER['XDG_DATA_HOME'] => /data
$_SERVER['APP_ENV_NAME'] => local
$_SERVER['PHPIZE_DEPS'] => autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c
$_SERVER['APP_ENV'] => dev
$_SERVER['PWD'] => /app
$_SERVER['PHP_SHA256'] => cb75a9b00a2806f7390dd64858ef42a47b443b3475769c8af6af33a18b1381f1
$_SERVER['SERVER_PORT'] => 80
$_SERVER['LOG_MODE'] => file
$_SERVER['SERVER_NAME'] => :80
$_SERVER['PHP_SELF'] =>
$_SERVER['SCRIPT_NAME'] =>
$_SERVER['SCRIPT_FILENAME'] =>
$_SERVER['PATH_TRANSLATED'] =>
$_SERVER['DOCUMENT_ROOT'] =>
$_SERVER['REQUEST_TIME_FLOAT'] => 1769091968.6422
$_SERVER['REQUEST_TIME'] => 1769091968Relevant log output
/root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.10.2/cmd/cobra.go:141 +0x34 fp=0x4000679c30 sp=0x4000679be0 pc=0xaf2f34
github.com/spf13/cobra.(*Command).execute(0x40007d0308, {0x400011f830, 0x3, 0x3})
/root/go/pkg/mod/github.com/spf13/cobra@v1.10.2/command.go:1015 +0x7d4 fp=0x4000679de0 sp=0x4000679c30 pc=0x600734
github.com/spf13/cobra.(*Command).ExecuteC(0x400020db08)
/root/go/pkg/mod/github.com/spf13/cobra@v1.10.2/command.go:1148 +0x350 fp=0x4000679ed0 sp=0x4000679de0 pc=0x600eb0
github.com/spf13/cobra.(*Command).Execute(...)
/root/go/pkg/mod/github.com/spf13/cobra@v1.10.2/command.go:1071
github.com/caddyserver/caddy/v2/cmd.Main()
/root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.10.2/cmd/main.go:72 +0x6c fp=0x4000679f30 sp=0x4000679ed0 pc=0xaec06c
main.main()
/go/src/app/caddy/frankenphp/main.go:15 +0x1c fp=0x4000679f40 sp=0x4000679f30 pc=0x16440bc
runtime.main()
/usr/local/go/src/runtime/proc.go:285 +0x278 fp=0x4000679fd0 sp=0x4000679f40 pc=0x44c9f8
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1268 +0x4 fp=0x4000679fd0 sp=0x4000679fd0 pc=0x48b4e4
goroutine 17 gp=0x4000002700 m=nil [chan receive, locked to thread]:
runtime.gopark(0x400009c008?, 0x40006c2680?, 0x18?, 0xad?, 0x485ac4?)
/usr/local/go/src/runtime/proc.go:460 +0xc0 fp=0x40000aacd0 sp=0x40000aacb0 pc=0x482e60
runtime.chanrecv(0x40000ce460, 0x0, 0x1)
/usr/local/go/src/runtime/chan.go:667 +0x428 fp=0x40000aad50 sp=0x40000aacd0 pc=0x416f28
runtime.chanrecv1(0x40002fe130?, 0x0?)
/usr/local/go/src/runtime/chan.go:509 +0x14 fp=0x40000aad80 sp=0x40000aad50 pc=0x416ac4
github.com/dunglas/frankenphp/internal/state.(*ThreadState).WaitFor(0x40002fe120, {0x4000062e80, 0x1, 0x1})
/go/src/app/internal/state/state.go:129 +0x19c fp=0x40000aae00 sp=0x40000aad80 pc=0x142945c
github.com/dunglas/frankenphp.go_frankenphp_main_thread_is_ready()
/go/src/app/phpmainthread.go:152 +0x94 fp=0x40000aae30 sp=0x40000aae00 pc=0x153aa64
_cgoexp_634fea83287e_go_frankenphp_main_thread_is_ready(0x40000aae98?)
_cgo_gotypes.go:2061 +0x1c fp=0x40000aae40 sp=0x40000aae30 pc=0x15418fc
runtime.cgocallbackg1(0x15418e0, 0xffff457ae3f0, 0x0)
/usr/local/go/src/runtime/cgocall.go:446 +0x248 fp=0x40000aaf10 sp=0x40000aae40 pc=0x414f68
runtime.cgocallbackg(0x15418e0, 0xffff457ae3f0, 0x0)
/usr/local/go/src/runtime/cgocall.go:350 +0x104 fp=0x40000aaf80 sp=0x40000aaf10 pc=0x414c54
runtime.cgocallbackg(0x15418e0, 0xffff457ae3f0, 0x0)
<autogenerated>:1 +0x1c fp=0x40000aafb0 sp=0x40000aaf80 pc=0x48d4ac
runtime.cgocallback(0x0, 0x0, 0x0)
/usr/local/go/src/runtime/asm_arm64.s:1180 +0xb0 fp=0x40000aafe0 sp=0x40000aafb0 pc=0x48b400
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1268 +0x4 fp=0x40000aafe0 sp=0x40000aafe0 pc=0x48b4e4
[...]
Too long