FrankenPHP 1.12.7 fixes a bug where output written after fastcgi_finish_request()/frankenphp_finish_request() was silently discarded in classic (non-worker) mode: with the default ignore_user_abort, echoing anything after finishing the request incorrectly marked the connection as aborted and bailed out mid-script. It also quiets noisy debug-level logging for routine client disconnects and fixes an incorrect thread-count metric.
🐛 Bug Fixes
- Classic mode: Fix output written after
fastcgi_finish_request()/frankenphp_finish_request()being silently discarded. With the defaultignore_user_abort, echoing anything after finishing the request incorrectly marked the connection as aborted and bailed out mid-script by @dunglas in #2569. Fixes #2548. - Metrics: Report
frankenphp_total_threadsas a gauge instead of accumulating it, so the metric reflects the current thread count instead of growing unbounded by @ousamabenyounes in #2550. Fixes #2481. - Opcache: Remove the opcache-invalidation restart hook again; restarting on every opcache reset could cascade into recursive restarts for frameworks that invalidate the cache heavily by @AlliBalliBaba in #2564.
- Logging: Stop logging routine client-disconnect write/flush errors at
warnlevel; they're nowdebug, matching Caddy and Mercure's convention, and no longer mislabeled as "not a flusher" by @dunglas in #2589. - Build: Take the
PHP_CONFIGenvironment variable into account ingo.shby @henderkes in #2557.
📖 Documentation
💖 New Contributors
- @ousamabenyounes made their first contribution in #2550
Full Changelog: v1.12.6...v1.12.7