Project

General

Profile

Actions

Bug #22059

closed

t3lib_div::cleanOutputBuffers() might loop forever

Added by Stephan Seitz about 14 years ago. Updated over 13 years ago.

Status:
Closed
Priority:
Should have
Category:
-
Target version:
-
Start date:
2010-02-04
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
4.3
PHP Version:
5.2
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

In particular environments it is possible that ob_get_level() doesn't get updated by ob_get_clean(). As both functions relay on the same data, it's also a redundant call which might fail.

I'ld propose to replace the whole while() loop starting around #5696 by

while(ob_end_clean());

As well as t3lib_div::flushOutputBuffers() didn't break things by now, I'ld propose to rewrite that while() loop also. This could read as:

while($obContent .= ob_get_clean());

I didn't check if Output Buffers are loosly handled at other places in the code, but I suggest to clean up every potential ob_* to NOT relay on ob_get_level().

This particular Error in t3lib_div::cleanOutputBuffers() can be verified by e.g. selecting different languages at the BE extension manager.

To reproduce it, run php with FPM SAPI via FCGI pipeline. This is one of the proposed SAPI for high-traffic, high-load sites.

We were able to reproduce it on different version of FPM-enabled PHP (5.2.n as well as 5.3.0/1)

(issue imported from #M13427)


Files

obsoletes_ob_get_level.patch (574 Bytes) obsoletes_ob_get_level.patch Administrator Admin, 2010-02-04 18:26
13427.diff (1.28 KB) 13427.diff Administrator Admin, 2010-07-28 10:06

Related issues 2 (0 open2 closed)

Related to TYPO3 Core - Bug #23122: Some links in typo3 backend is not responding with zlib.output_compression = On in php.iniClosed2010-07-07

Actions
Has duplicate TYPO3 Core - Bug #21866: Ext manager produce blank pageClosedSteffen Gebert2009-12-18

Actions
Actions

Also available in: Atom PDF