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

 ID:                 60937
 User updated by:    npm at nuestrared dot com
 Reported by:        npm at nuestrared dot com
 Summary:            Memory leak on unserialize for nested objects
 Status:             Not a bug
 Type:               Bug
 Package:            Performance problem
 Operating System:   Debian Linux
 PHP Version:        5.4SVN-2012-01-31 (snap)
 Block user comment: N
 Private report:     N

 New Comment:

Hi, I have updated the object on the script and force the use of 
gc_collect_cycles() after each iteration.  However, there is an increase of 
4980736 bytes, after 100 runs, it doesn't happen with every object, but it does 
with this particular one. Also the increase is not with every iteration but 
every couple of iterations, until it gets to a maximum, in this case the 
4980736 
bytes.  Let me know if to open a different bug.

The updated script at:
http://dl.dropbox.com/u/7170408/unserialize_memleak.php

The output of the script:

Iteration 0      Start Mem 786432 Cicle Mem 3145728 Diff 2359296
Iteration 1      Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 2      Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 3      Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 4      Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 5      Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 6      Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 7      Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 8      Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 9      Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 10     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 11     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 12     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 13     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 14     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 15     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 16     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 17     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 18     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 19     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 20     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 21     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 22     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 23     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 24     Start Mem 786432 Cicle Mem 5505024 Diff 4718592
Iteration 25     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 26     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 27     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 28     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 29     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 30     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 31     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 32     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 33     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 34     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 35     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 36     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 37     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 38     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 39     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 40     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 41     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 42     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 43     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 44     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 45     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 46     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 47     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 48     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 49     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 50     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 51     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 52     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 53     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 54     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 55     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 56     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 57     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 58     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 59     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 60     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 61     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 62     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 63     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 64     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 65     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 66     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 67     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 68     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 69     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 70     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 71     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 72     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 73     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 74     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 75     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 76     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 77     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 78     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 79     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 80     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 81     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 82     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 83     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 84     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 85     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 86     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 87     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 88     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 89     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 90     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 91     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 92     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 93     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 94     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 95     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 96     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 97     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 98     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Iteration 99     Start Mem 786432 Cicle Mem 5767168 Diff 4980736
Done.

Start Mem 786432 End Mem 5767168 Final Diff 4980736


Previous Comments:
------------------------------------------------------------------------
[2012-02-01 03:21:47] larue...@php.net

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

defaultly, php gc will run when the buffer root reach 10000, but you can force 
the 
collection of cycles by calling gc_collect_cycles() function.

see: http://www.php.net/manual/en/features.gc.collecting-cycles.php

------------------------------------------------------------------------
[2012-01-31 12:55:44] npm at nuestrared dot com

Description:
------------
Hi, this is a recurring problem in PHP when unserializing large nested objects. 
 
When unserializing inside a loop the same serialized object, the total memory 
consumption increases every couple of iterations. I am attaching the code to 
replicate it.  Have tested it in the latest 5.4 (snap), it also occurs in 5.3.
Let me know if you need any more details,


Tested on Debian Linux 64 wheezy/sid, however I believe is platform independent.
Couldn't find a bug category for serialize/mem leak related issues.


Test script:
---------------
<?php
$str = 
base64_decode('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');

for ($i=0; $i<1000; $i++) {
    echo "Iteration $i\t Mem ".memory_get_usage(true)."\n";
    unserialize($str);
}

Expected result:
----------------
The memory consumption should be stable, it increases with iterations.

Actual result:
--------------
Result from script:

Iteration 0      Mem 262144
Iteration 1      Mem 524288
Iteration 2      Mem 524288
Iteration 3      Mem 524288
Iteration 4      Mem 524288
Iteration 5      Mem 524288
Iteration 6      Mem 524288
Iteration 7      Mem 786432
Iteration 8      Mem 786432
Iteration 9      Mem 786432
Iteration 10     Mem 786432
Iteration 11     Mem 786432
Iteration 12     Mem 786432
Iteration 13     Mem 786432
Iteration 14     Mem 1048576
Iteration 15     Mem 1048576


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



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

Reply via email to