Bug #72466 [Nab]: Memory leak
Edit report at https://bugs.php.net/bug.php?id=72466&edit=1
ID: 72466
User updated by: rusa959 at gmail dot com
Reported by: rusa959 at gmail dot com
Summary: Memory leak
Status: Not a bug
Type: Bug
Package: *General Issues
Operating System: Ubuntu 16.04 LTS
PHP Version: 5.6.22
Block user comment: N
Private report: N
New Comment:
Thank you!
My script reached memory limit earlier than php reached limit that needed to run garbage collector.
Previous Comments:
------------------------------------------------------------------------
[2016-06-22 08:12:08] nikic@php.net
The cycle collector will release this memory once it runs.
------------------------------------------------------------------------
[2016-06-22 07:49:15] rusa959 at gmail dot com
Possible memory is not released because "callback" variable has internal reference to
object by variable $this
------------------------------------------------------------------------
[2016-06-22 07:41:08] rusa959 at gmail dot com
Description:
------------
In php versions 7.0.6, 5.6.22, 5.6.16, 5.4.35
I have construct object that have anonymous function in his field named "callback".
When i am trying to unset object - object is still exists, memory that allocated to object is not
released.
In php version 5.3.10 memory is released.
Test script:
---------------
<?php
class Leak
{
protected $callback;
public function set()
{
$this->callback = function(){};
}
}
$base_usage = memory_get_usage();
for($i=0;$i<12;$i++) {
echo 'step-1 ' . (memory_get_usage() - $base_usage) . PHP_EOL;
$leak = new Leak();
$leak->set();
unset($leak);
echo 'step-2 ' . (memory_get_usage() - $base_usage) . PHP_EOL;
}
echo 'step-3 ' . (memory_get_usage() - $base_usage) . PHP_EOL;
Expected result:
----------------
step-1 344
step-2 840
step-1 840
step-2 840
step-1 840
step-2 840
step-1 840
step-2 840
step-1 840
step-2 840
step-1 840
....
Actual result:
--------------
step-1 344
step-2 840
step-1 840
step-2 1328
step-1 1328
step-2 1816
step-1 1816
step-2 2304
step-1 2304
step-2 2792
step-1 2792
step-2 3280
....
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=72466&edit=1
Thread (4 messages)