Bug #13806 Updated: zlib compression is broken?
| From: | yasuo_ohgaki at yahoo dot com | Date: | Sun, 11 Nov 2001 00:16:03 +0000 |
| Subject: | Bug #13806 Updated: zlib compression is broken? | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-70040@lists.php.net to get a copy of this message | ||
ID: 13806
User updated by: yasuo_ohgaki@yahoo.com
Reported By: yasuo_ohgaki@yahoo.com
Status: Open
Bug Type: Reproducible crash
Operating System: Linux 2.4.14-pre3/glibc 2.2.2
PHP Version: 4.1.0 RC CVS-2001-10-24
New Comment:
Thanks for your time.
However, 8MB memory limit should be enough for phpinfo() output with zlib compression, isn't
it?
Buffer size is default. (4096)
I'll test against with current 4.1.0RC CVS and 4.2.0-dev and report result later.
Previous Comments:
------------------------------------------------------------------------
[2001-11-10 11:48:21] zeev@php.net
Looks like it may be related to bug #13698 after all. The mbstring-auto-conversion may be the
problem here, as without it - I cannot reproduce the bug, and it appears to work fine...
------------------------------------------------------------------------
[2001-11-10 11:12:21] zeev@php.net
This issue does not appear to be related in any way to the bug id's 12270 and 13698...
------------------------------------------------------------------------
[2001-11-10 11:07:11] zeev@php.net
This is most probably not a bug, at least not in the way you perceive it. With a large output
buffer - the script will indeed have to consume lots of memory. If your memory limit does not allow
this - you'll get these warnings, and in case of a debug build - those complaints about memory
being freed...
Now, there could be two authentic bugs:
(a) There may be a bug in the memory limit implementation. However, it's the same as it has
been for years, and it may be that just output buffering is exploiting it in a way that wasn't
thought of before. Generally, if the memory limit is reached, PHP tries to bail out nicely. If
somehow, PHP goes on consuming more memory, beyond 1MB above the memory limit - it performs a hard
exit(). It's possible that the shutdown sequence causes some loop of memory exhaustion -
bailout - memory exhaustion - bailout#2 - etc., which cannot be broken. I'll take a look at
it.
(b) There might be a memory leak in the zlib output compression code. Please let me know what
buffer size you use. You really shouldn't be using more than about 16KB or so.
------------------------------------------------------------------------
[2001-10-28 10:28:34] yasuo_ohgaki@yahoo.com
Problem is appearent if output is larger than output buffer size.
httpd exits with code 01 with following script
(No output)
<?php
for ($i=0; $i < 1024; $i++) echo 'abcd';
?>
but it not with
(Output is correct)
<?php
for ($i=0; $i < 1023; $i++) echo 'abcd';
?>
It exits with code 01 with more complex script w/o output, though.
------------------------------------------------------------------------
[2001-10-28 08:50:56] yasuo_ohgaki@yahoo.com
Upgraded from apache 1.3.20 to 1.3.22.
httpd exited with status code 01 while running under gdb.
(gdb) run -X
Starting program: /usr/sbin/httpd -X
Program exited with code 01.
(gdb)
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/?id=13806
Edit this bug report at http://bugs.php.net/?id=13806&edit=1