Bug #12952 Updated: Output buffering misbehaving
| From: | sniper@php.net | Date: | Wed, 31 Oct 2001 00:07:33 +0000 |
| Subject: | Bug #12952 Updated: Output buffering misbehaving | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-69378@lists.php.net to get a copy of this message | ||
ID: 12952
Updated by: sniper
Reported By: ryan_sokol@ihearditwas.com
Old Status: Open
Status: Feedback
Bug Type: Output Control
Operating System: RedHat 7.2
PHP Version: 4.0.6
New Comment:
Does this happen with latest CVS snapshot from
http://snaps.php.net/ ?
Previous Comments:
------------------------------------------------------------------------
[2001-10-30 16:40:02] ryan_sokol@ihearditwas.com
Almost forgot, I also get this in my Apache error_log:
[Tue Oct 30 15:36:56 2001] [notice] child pid 4831 exit signal Segmentation fault (11)
------------------------------------------------------------------------
[2001-10-30 15:35:30] ryan_sokol@ihearditwas.com
Changed the bug type, OS, and Summary.
After unsuccessfully trying to get a backtrace (got a Segmentation Fault and "Document contains
no data", but could not generate a core file nor force a crash on httpd in gdb), I have
concluded that this has to do with the
--enable-trans-sid option AND ob_end_flush() on PHP 4.0.6. When I compile PHP WITHOUT the
--enable-trans-sid, I have no problems (except I need the trans-sid for my sessions). But when I
recompile PHP WITH --enable-trans-sid, I get the Segmentation Fault and "Document contains no
data" errors.
I think this is related to Bug# 12180. Again, the code (see above) did not change from PHP 4.0.4pl1
to PHP 4.0.6, but the result of execution did.
------------------------------------------------------------------------
[2001-10-26 18:06:58] ryan_sokol@ihearditwas.com
Note: The function sessionResume() simply checks if a session exists for the user and continues it
if it does or starts a new one if it doesn't.
------------------------------------------------------------------------
[2001-08-24 17:24:36] ryan_sokol@ihearditwas.com
Here's my configure line:
'./configure' '-with-apxs' '--enable-track-vars'
'--disable-debug' '--enable-sysvshm' '-enable-sysvsem'
'-enable-trans-sid'
I have been running PHP 4.0.4pl1 with no problems for about 5 months and tried to move to PHP 4.0.6.
The code below produced an undisplayable page in 4.0.6 but works fine in 4.0.4pl1:
///////////////////////////////////////////////////////////
ob_start();
if (sessionResume() == false)
{
// some error handling code here
include "error.fre";
return;
}
else
{
// some more logic here
if($loginTo != '') // means would rather go to another page, probably from bookmark
header("Location: " . $loginTo . "&PHPSESS=" . session_id());
else
include "member-home.fre";
}
ob_end_flush();
///////////////////////////////////////////////////////////
What happens when I run this code is IE gives me a "Page cannot be displayed" screen. I
am positive this has something to do with 4.0.6 because I had 4.0.4pl1 installed, then upgraded to
4.0.6 and got the error, and then downgraded back to 4.0.4pl1 (where it worked properly again)
without changing one line of code or anything in php.ini.
Sorry I can't offer any suggestions, but let me know if I can help track this one down.
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=12952&edit=1