Edit report at http://bugs.php.net/bug.php?id=54460&edit=1
ID: 54460 Comment by: decoder-php at own-hero dot net Reported by: courtois at templeet dot org Summary: memory leaks Status: Open Type: Bug Package: Reproducible crash Operating System: debian squeeze PHP Version: 5.3.6 Block user comment: N Private report: N New Comment: Hello, do you happen to have a testcase that runs on command line, or can your testcase be run on command line instead of using Apache? That would allow me to automatically reduce the testcase. Best, Chris Previous Comments: ------------------------------------------------------------------------ [2011-04-03 21:28:12] courtois at templeet dot org Description: ------------ memory leaks leed to memory exhaustion (see valgrind trace below) PHP 5.3.6 './configure' '--prefix=/usr/local/php53' '--with-mysql' '--with-mysqli' '--with-gd' '--with-zlib' '--enable-debug' '--disable-cli' called with cgi memory exhaustion appears with zend memory manager. Test script: --------------- bug can be reproduced by downloading Templeet installer at: http://t4.templeet.org/templeet.php/makeinstaller/?action=makeinstaller&dists[core]=201104030716&dists[templeet4_admin]=201103010804 install Templeet by calling the php file downloaded. in templeet/serverconf.php : set $config['usepagecache'] and $config['usetemplatecache'] to 0 go to the package install page : auth/packageinstall.html.en Actual result: -------------- ==22302== Memcheck, a memory error detector ==22302== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==22302== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info ==22302== Command: /home/courtois/test2/php-5.3.6/sapi/cgi/php-cgi ==22302== /var/www/dev4.sociatomdev.com/chroot/htdocs/templeet/fetch.php(215) : Warning - Cannot modify header information - headers already sent by (output started at /var/www/dev4.sociatomdev.com/chroot/htdocs/templeet/fetch.php:580) ==22302== ==22302== HEAP SUMMARY: ==22302== in use at exit: 60,706 bytes in 1,591 blocks ==22302== total heap usage: 1,815,703 allocs, 1,814,112 frees, 302,914,393 bytes allocated ==22302== ==22302== 21 (20 direct, 1 indirect) bytes in 1 blocks are definitely lost in loss record 27 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x844BADE: zend_assign_to_variable_reference (zend_execute.c:413) ==22302== by 0x84D6FF2: ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER (zend_vm_execute.h:27383) ==22302== by 0x844E8AA: execute (zend_vm_execute.h:107) ==22302== by 0x8421BD7: zend_execute_scripts (zend.c:1194) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 21 (20 direct, 1 indirect) bytes in 1 blocks are definitely lost in loss record 28 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x844CE48: zend_assign_to_variable (zend_execute.c:714) ==22302== by 0x84C5B07: ZEND_ASSIGN_SPEC_CV_CONST_HANDLER (zend_vm_execute.h:24059) ==22302== by 0x844E8AA: execute (zend_vm_execute.h:107) ==22302== by 0x8421BD7: zend_execute_scripts (zend.c:1194) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 39 bytes in 3 blocks are possibly lost in loss record 46 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x84010EA: _estrndup (zend_alloc.c:2503) ==22302== by 0x83E748F: zend_scan_escape_string (zend_language_scanner.l:740) ==22302== by 0x83E90AC: lex_scan (zend_language_scanner.l:2037) ==22302== by 0x840E952: zendlex (zend_compile.c:4954) ==22302== by 0x83E1482: zendparse (zend_language_parser.c:3280) ==22302== by 0x83E6D7F: compile_file (zend_language_scanner.l:364) ==22302== by 0x82658C4: phar_compile_file (phar.c:3393) ==22302== by 0x8421B37: zend_execute_scripts (zend.c:1186) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 40 bytes in 2 blocks are definitely lost in loss record 54 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x84BE49D: zend_send_by_var_helper_SPEC_CV (zend_vm_execute.h:22135) ==22302== by 0x84BEBC5: ZEND_SEND_VAR_SPEC_CV_HANDLER (zend_vm_execute.h:22242) ==22302== by 0x844E8AA: execute (zend_vm_execute.h:107) ==22302== by 0x8421BD7: zend_execute_scripts (zend.c:1194) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 54 (20 direct, 34 indirect) bytes in 1 blocks are definitely lost in loss record 65 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x844C52A: zend_assign_to_object (zend_execute.c:558) ==22302== by 0x84C531D: ZEND_ASSIGN_OBJ_SPEC_CV_CONST_HANDLER (zend_vm_execute.h:23966) ==22302== by 0x844E8AA: execute (zend_vm_execute.h:107) ==22302== by 0x8421BD7: zend_execute_scripts (zend.c:1194) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 75 bytes in 12 blocks are possibly lost in loss record 73 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x84010EA: _estrndup (zend_alloc.c:2503) ==22302== by 0x83E748F: zend_scan_escape_string (zend_language_scanner.l:740) ==22302== by 0x83EB434: lex_scan (zend_language_scanner.l:1870) ==22302== by 0x840E952: zendlex (zend_compile.c:4954) ==22302== by 0x83E1482: zendparse (zend_language_parser.c:3280) ==22302== by 0x83E6D7F: compile_file (zend_language_scanner.l:364) ==22302== by 0x82658C4: phar_compile_file (phar.c:3393) ==22302== by 0x8421B37: zend_execute_scripts (zend.c:1186) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 85 bytes in 11 blocks are possibly lost in loss record 77 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x84010EA: _estrndup (zend_alloc.c:2503) ==22302== by 0x83F3D83: lex_scan (zend_language_scanner.l:1036) ==22302== by 0x840E952: zendlex (zend_compile.c:4954) ==22302== by 0x83E1482: zendparse (zend_language_parser.c:3280) ==22302== by 0x83E6D7F: compile_file (zend_language_scanner.l:364) ==22302== by 0x82658C4: phar_compile_file (phar.c:3393) ==22302== by 0x8421B37: zend_execute_scripts (zend.c:1186) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 92 (80 direct, 12 indirect) bytes in 4 blocks are definitely lost in loss record 82 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x844F09E: zend_do_fcall_common_helper_SPEC (zend_vm_execute.h:300) ==22302== by 0x8452D45: ZEND_DO_FCALL_SPEC_CONST_HANDLER (zend_vm_execute.h:1606) ==22302== by 0x844E8AA: execute (zend_vm_execute.h:107) ==22302== by 0x8421BD7: zend_execute_scripts (zend.c:1194) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 100 bytes in 7 blocks are possibly lost in loss record 84 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x841E742: zend_str_tolower_dup (zend_operators.c:1884) ==22302== by 0x8405CB6: zend_do_begin_dynamic_function_call (zend_compile.c:1683) ==22302== by 0x84057F8: zend_do_begin_function_call (zend_compile.c:1575) ==22302== by 0x83E3F78: zendparse (zend_language_parser.c:4652) ==22302== by 0x83E6D7F: compile_file (zend_language_scanner.l:364) ==22302== by 0x82658C4: phar_compile_file (phar.c:3393) ==22302== by 0x8421B37: zend_execute_scripts (zend.c:1186) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 100 bytes in 12 blocks are possibly lost in loss record 85 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x84010EA: _estrndup (zend_alloc.c:2503) ==22302== by 0x83EC50D: lex_scan (zend_language_scanner.l:1672) ==22302== by 0x840E952: zendlex (zend_compile.c:4954) ==22302== by 0x83E1482: zendparse (zend_language_parser.c:3280) ==22302== by 0x83E6D7F: compile_file (zend_language_scanner.l:364) ==22302== by 0x82658C4: phar_compile_file (phar.c:3393) ==22302== by 0x8421B37: zend_execute_scripts (zend.c:1186) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 122 bytes in 9 blocks are possibly lost in loss record 90 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x84010EA: _estrndup (zend_alloc.c:2503) ==22302== by 0x83E9E0E: lex_scan (zend_language_scanner.l:1695) ==22302== by 0x840E952: zendlex (zend_compile.c:4954) ==22302== by 0x83E1482: zendparse (zend_language_parser.c:3280) ==22302== by 0x83E6D7F: compile_file (zend_language_scanner.l:364) ==22302== by 0x82658C4: phar_compile_file (phar.c:3393) ==22302== by 0x8421B37: zend_execute_scripts (zend.c:1186) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 182 bytes in 14 blocks are possibly lost in loss record 100 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x84010EA: _estrndup (zend_alloc.c:2503) ==22302== by 0x83EB237: lex_scan (zend_language_scanner.l:1817) ==22302== by 0x840E952: zendlex (zend_compile.c:4954) ==22302== by 0x83E1482: zendparse (zend_language_parser.c:3280) ==22302== by 0x83E6D7F: compile_file (zend_language_scanner.l:364) ==22302== by 0x82658C4: phar_compile_file (phar.c:3393) ==22302== by 0x8421B37: zend_execute_scripts (zend.c:1186) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 322 bytes in 34 blocks are possibly lost in loss record 112 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x841E742: zend_str_tolower_dup (zend_operators.c:1884) ==22302== by 0x840579D: zend_do_begin_function_call (zend_compile.c:1571) ==22302== by 0x83E3F78: zendparse (zend_language_parser.c:4652) ==22302== by 0x83E6D7F: compile_file (zend_language_scanner.l:364) ==22302== by 0x82658C4: phar_compile_file (phar.c:3393) ==22302== by 0x8421B37: zend_execute_scripts (zend.c:1186) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 482 (144 direct, 338 indirect) bytes in 1 blocks are definitely lost in loss record 116 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x83E6C86: compile_file (zend_language_scanner.l:334) ==22302== by 0x82658C4: phar_compile_file (phar.c:3393) ==22302== by 0x8421B37: zend_execute_scripts (zend.c:1186) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 613 (60 direct, 553 indirect) bytes in 3 blocks are definitely lost in loss record 117 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x84BEA56: ZEND_SEND_REF_SPEC_CV_HANDLER (zend_vm_execute.h:22226) ==22302== by 0x844E8AA: execute (zend_vm_execute.h:107) ==22302== by 0x8421BD7: zend_execute_scripts (zend.c:1194) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 679 (120 direct, 559 indirect) bytes in 6 blocks are definitely lost in loss record 121 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x844CEFB: zend_assign_to_variable (zend_execute.c:724) ==22302== by 0x84CCEAB: ZEND_ASSIGN_SPEC_CV_TMP_HANDLER (zend_vm_execute.h:25697) ==22302== by 0x844E8AA: execute (zend_vm_execute.h:107) ==22302== by 0x8421BD7: zend_execute_scripts (zend.c:1194) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 14,467 (88 direct, 14,379 indirect) bytes in 2 blocks are definitely lost in loss record 135 of 136 ==22302== at 0x4023F50: malloc (vg_replace_malloc.c:236) ==22302== by 0x8400D36: _emalloc (zend_alloc.c:2348) ==22302== by 0x8415A60: zend_rebuild_symbol_table (zend_execute_API.c:1699) ==22302== by 0x844CFEC: zend_get_target_symbol_table (zend_execute.c:766) ==22302== by 0x8452290: zend_fetch_var_address_helper_SPEC_CONST (zend_vm_execute.h:1340) ==22302== by 0x8452904: ZEND_FETCH_R_SPEC_CONST_HANDLER (zend_vm_execute.h:1424) ==22302== by 0x844E8AA: execute (zend_vm_execute.h:107) ==22302== by 0x8421BD7: zend_execute_scripts (zend.c:1194) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== 17,328 bytes in 1 blocks are possibly lost in loss record 136 of 136 ==22302== at 0x4024046: realloc (vg_replace_malloc.c:525) ==22302== by 0x8400DF7: _erealloc (zend_alloc.c:2369) ==22302== by 0x84176D6: pass_two (zend_opcode.c:380) ==22302== by 0x83E6DDB: compile_file (zend_language_scanner.l:376) ==22302== by 0x82658C4: phar_compile_file (phar.c:3393) ==22302== by 0x8421B37: zend_execute_scripts (zend.c:1186) ==22302== by 0x83B8CC8: php_execute_script (main.c:2268) ==22302== by 0x84E649E: main (cgi_main.c:2109) ==22302== ==22302== LEAK SUMMARY: ==22302== definitely lost: 592 bytes in 21 blocks ==22302== indirectly lost: 15,877 bytes in 524 blocks ==22302== possibly lost: 18,353 bytes in 103 blocks ==22302== still reachable: 25,884 bytes in 943 blocks ==22302== suppressed: 0 bytes in 0 blocks ==22302== Reachable blocks (those to which a pointer was found) are not shown. ==22302== To see them, rerun with: --leak-check=full --show-reachable=yes ==22302== ==22302== For counts of detected and suppressed errors, rerun with: -v ==22302== ERROR SUMMARY: 18 errors from 18 contexts (suppressed: 38 from 11) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=54460&edit=1