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