Shutdown crash: "fatal error: non-Go code disabled sigaltstack"
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'] => 1769091968
Relevant 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