Stop output buffer cleanup at buffers that cannot be removed

zlib.output_compression makes its buffer non-removable once it has sent
compressed output, so ob_end_clean() raised a notice that replaced the
original exception. Fixes #704.
This commit is contained in:
dualfroz committed 2026-10-02 16:11:20 +02:00
1 parent a5b89f86ae
commit 13ce578de8
4 files changed
+73 -2

No files matched your search

+4 -2
View File
@@ -425,8 +425,10 @@ final class Run implements RunInterface
if ($this->writeToOutput()) {
// @todo Might be able to clean this up a bit better
if ($willQuit) {
// Cleanup all other output buffers before sending our output:
while ($this->system->getOutputBufferLevel() > 0) {
// Cleanup all other output buffers before sending our output.
// Stop at a buffer that cannot be removed, e.g. zlib output
// compression once it has started sending compressed output:
while ($this->system->getOutputBufferLevel() > 0 && $this->system->isOutputBufferRemovable()) {
$this->system->endOutputBuffering();
}