Edit report at https://bugs.php.net/bug.php?id=53980&edit=1

 ID:                 53980
 Comment by:         miau dot jp at gmail dot com
 Reported by:        skibi82 at interia dot pl
 Summary:            On the Windows-version of PHP can not allocate more
                     memory than 512 memory_limi
 Status:             Open
 Type:               Bug
 Package:            PHP options/info functions
 Operating System:   Win7 , WinXP, Win2008 srv R2
 PHP Version:        5.3.9
 Block user comment: N
 Private report:     N

 New Comment:

This is caused by heap size limitation of Windows. A process can use
heap up to nealy 1500MB on recent versions of Windows.

Because of fragmentation, actual limit is less than 1500MB.
For example, I added some debugging code to PHP (see
https://gist.github.com/4011991 ) and ran following sample
script.

----

<?php
ini_set('memory_limit', '3072M');
define('MB', 1024 * 1024);
$str = str_repeat('a', 400 * MB);
$str = '' . $str;
$str .= $str;

>php bug53980.php
[alloc]        segment: 0x02CF0048-0x02D30047 size: 262144 (0MB)
[free]         segment: 0x02CF0048
[alloc]        segment: 0x02CF0048-0x02D30047 size: 262144 (0MB)
[alloc]        segment: 0x02D30050-0x02D7004F size: 262144 (0MB)
[alloc]        segment: 0x102A0020-0x292E001F size: 419692544 (400MB)
[alloc]        segment: 0x292F0020-0x4233001F size: 419692544 (400MB)
[free]         segment: 0x102A0020
[realloc from] segment: 0x292F0020
[realloc to]   segment: 0x00000000-0x3203FFFF size: 839122944 (800MB)

Fatal error: Out of memory (allocated 420216832) (tried to allocate 838860801 
bytes) in C:\***\bug55980.php on line 6
zend_mm_heap corrupted

----

Dispite the heap has nearly 1100MB free space in total, there is no
contiguous 800MB space. Then HeapRealloc() fails and returns NULL.


Previous Comments:
------------------------------------------------------------------------
[2012-03-06 11:51:30] shaun at laughey dot com

Still an issue on PHP 5.3.10 tested on Windows 2008 and Windows 7 using FCGI 
and mod_php on both platforms.

------------------------------------------------------------------------
[2012-01-24 18:47:20] skibi82 at interia dot pl

The error still occurs

------------------------------------------------------------------------
[2012-01-24 18:45:19] skibi82 at interia dot pl

Fatal error: Out of memory (allocated 537919488) (tried to allocate 536870913 
bytes) XXXX
zend_mm_heap corrupted

The error occurs regardless of the setting memory_limit

------------------------------------------------------------------------
[2011-11-04 15:54:48] skibi8 at interia dot pl

In version 5.3.8 error still occurs

E:\SVN>test.php
5.3.8
Limit:4024M
100
1000
PHP Fatal error:  Out of memory (allocated 736362496) (tried to allocate 734003
01 bytes) in E:\SVN\test.php on line 25

---
echo phpversion()."\n"; 

 ini_set ('memory_limit', '4024M');
 echo 'Limit:'.ini_get ('memory_limit')."\n";

$mb='';
$x=0;
do {
$x++;
$mb.='X';
}while ($x< 1048576);
echo "100\n";
$x=0;
$mb100='';
do {
$x++;
$mb100.=$mb;
}while ($x< 100);
echo "1000\n";
$x=0;
$gb='';
do {
$x++;
$gb.=$mb100;
}while ($x< 10);
echo "OK\n";



Fatal error: Out of memory (allocated 736362496) (tried to allocate 734003201 b
tes) in E:\SVN\test.php on line 25
zend_mm_heap corrupted

------------------------------------------------------------------------
[2011-11-04 15:40:14] paj...@php.net

Please try with 5.3.8

------------------------------------------------------------------------


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

    https://bugs.php.net/bug.php?id=53980


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=53980&edit=1

Reply via email to