Memory manager

php.internals

Andi Gutmans

22 years ago
Hi, Although I'm pretty sure I fixed the problem of the memory manager (in zend_alloc.c), I agree with Sterling that it's probably best to disable it for 5.0.0. I don't think that my fix will get enough testing until then for me to feel comfortable with including it. As I'd like to roll 5.0.0 by the end of the week, can developers please speak up if they have anything critical they are working on? Please also run latest head just to make sure that the malloc()/free() MM still works :) Andi

Christian Stocker

22 years ago
On 5.7.2004 19:08 Uhr, Andi Gutmans wrote:
> Hi, > > Although I'm pretty sure I fixed the problem of the memory manager (in > zend_alloc.c), I agree with Sterling that it's probably best to disable > it for 5.0.0. I don't think that my fix will get enough testing until > then for me to feel comfortable with including it. > As I'd like to roll 5.0.0 by the end of the week, can developers please > speak up if they have anything critical they are working on? > > Please also run latest head just to make sure that the malloc()/free() > MM still works :)
did you see http://bugs.php.net/bug.php?id=29016 ? sorry for not having short code to reproduce it... chregu
> > Andi >
-- christian stocker | Bitflux GmbH | schoeneggstrasse 5 | ch-8004 zurich phone +41 1 240 56 70 | mobile +41 76 561 88 60 | fax +41 1 240 56 71 http://www.bitflux.ch | chregu@bitflux.ch | gnupg-keyid 0x5CE1DECB

Andi Gutmans

22 years ago
Is this with ZEND_MM or without? Andi At 07:17 PM 7/5/2004 +0200, Christian Stocker wrote:

Christian Stocker

22 years ago
Hi
> Is this with ZEND_MM or without?
Sorry about my ignorance, but I don't know ;) standard ./configure (with some extensions) on OS X ... chregu On 5.7.2004 19:48 Uhr, Andi Gutmans wrote:
> > Andi > > At 07:17 PM 7/5/2004 +0200, Christian Stocker wrote: > > >> On 5.7.2004 19:08 Uhr, Andi Gutmans wrote: >> >>> Hi, >>> Although I'm pretty sure I fixed the problem of the memory manager >>> (in zend_alloc.c), I agree with Sterling that it's probably best to >>> disable it for 5.0.0. I don't think that my fix will get enough >>> testing until then for me to feel comfortable with including it. >>> As I'd like to roll 5.0.0 by the end of the week, can developers >>> please speak up if they have anything critical they are working on? >>> Please also run latest head just to make sure that the >>> malloc()/free() MM still works :) >> >> >> did you see http://bugs.php.net/bug.php?id=29016 ? >> >> sorry for not having short code to reproduce it... >> >> chregu >> >>> Andi >> >> >> -- >> christian stocker | Bitflux GmbH | schoeneggstrasse 5 | ch-8004 zurich >> phone +41 1 240 56 70 | mobile +41 76 561 88 60 | fax +41 1 240 56 71 >> http://www.bitflux.ch | chregu@bitflux.ch | gnupg-keyid 0x5CE1DECB > >
-- christian stocker | Bitflux GmbH | schoeneggstrasse 5 | ch-8004 zurich phone +41 1 240 56 70 | mobile +41 76 561 88 60 | fax +41 1 240 56 71 http://www.bitflux.ch | chregu@bitflux.ch | gnupg-keyid 0x5CE1DECB

Rasmus Lerdorf

22 years ago
I'd like to see a few people who know their way around Valgrind give this thing a workout before any release. I am planning on doing that as well this week, but the more codepaths tested, the better. -Rasmus On Mon, 5 Jul 2004, Andi Gutmans wrote:

Sterling Hughes

22 years ago
yes!!! i currently don't have a 32 bit linux box available to me (i'm remote in ca for all of august), however, if someone gives me shell on one, i'll bang around on it with valgrind. -sterling On Mon, 5 Jul 2004 11:13:12 -0700 (Pacific Standard Time), Rasmus Lerdorf <rasmus@php.net> wrote:

Rasmus Lerdorf

22 years ago
http://ozlabs.org/~paulus/valgrind-2.1.0-ppc.tar.bz2 On Mon, 5 Jul 2004, Sterling Hughes wrote:

George Schlossnagle

22 years ago
I think sterling's looking for an OS X port. How is y!'s (inf)famous freebsd port of valgrind coming along? Rasmus Lerdorf wrote:

Rasmus Lerdorf

22 years ago
It's not really Y's port. We just helped it along a bit. Doug Rabson is the person you are looking for. See http://www.rabson.org/ -Rasmus On Mon, 5 Jul 2004, George Schlossnagle wrote:

Marcus Börger

22 years ago
Hello Rasmus, Monday, July 5, 2004, 8:13:12 PM, you wrote:
> I'd like to see a few people who know their way around Valgrind give this > thing a workout before any release. I am planning on doing that as well > this week, but the more codepaths tested, the better.
i thought my valgrind was bork but wow it works after reverting to an older snapshot of the virtual machine :-) in the output there are 13281 errors from 4 contexts regarding missreads near constants. I tried to solve this again and gain and again but maybe i am blind. Apart from that i see some problems with internal classes. Note that this is a ZTS build. I know that for a short time some time ago i did not experience this. Anybody see those with non ZTS too? regards marcus marcus@frodo /usr/src/php-cvs $ valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=30 sapi/cli/php -r 'echo "Hello\n" ==27248== Memcheck, a memory error detector for x86-linux. ==27248== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward. ==27248== Using valgrind-2.1.1, a program supervision framework for x86-linux. ==27248== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward. ==27248== For more details, rerun with: -v ==27248== ==27248== Invalid read of size 1 ==27248== at 0x3C01DF90: memcpy (mac_replace_strmem.c:283) ==27248== by 0x8365A46: _zend_hash_add_or_update (zend_hash.c:242) ==27248== by 0x836742E: zend_hash_copy (zend_hash.c:754) ==27248== by 0x835D3BB: compiler_globals_ctor (zend.c:442) ==27248== by 0x835DD41: zend_post_startup (zend.c:686) ==27248== by 0x8309F2C: php_module_startup (main.c:1467) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== Address 0x3C840F13 is 1 bytes before a block of size 10 alloc'd ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x834008C: zend_strndup (zend_alloc.c:413) ==27248== by 0x834DEC8: zend_register_long_constant (zend_constants.c:170) ==27248== by 0x834DB44: zend_register_standard_constants (zend_constants.c:97) ==27248== by 0x835DBAF: zend_startup (zend.c:642) ==27248== by 0x83098FD: php_module_startup (main.c:1338) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== Invalid read of size 1 ==27248== at 0x3C01DF99: memcpy (mac_replace_strmem.c:284) ==27248== by 0x8365A46: _zend_hash_add_or_update (zend_hash.c:242) ==27248== by 0x836742E: zend_hash_copy (zend_hash.c:754) ==27248== by 0x835D3BB: compiler_globals_ctor (zend.c:442) ==27248== by 0x835DD41: zend_post_startup (zend.c:686) ==27248== by 0x8309F2C: php_module_startup (main.c:1467) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== Address 0x3C840F12 is 2 bytes before a block of size 10 alloc'd ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x834008C: zend_strndup (zend_alloc.c:413) ==27248== by 0x834DEC8: zend_register_long_constant (zend_constants.c:170) ==27248== by 0x834DB44: zend_register_standard_constants (zend_constants.c:97) ==27248== by 0x835DBAF: zend_startup (zend.c:642) ==27248== by 0x83098FD: php_module_startup (main.c:1338) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== Invalid read of size 1 ==27248== at 0x3C01DF9F: memcpy (mac_replace_strmem.c:285) ==27248== by 0x8365A46: _zend_hash_add_or_update (zend_hash.c:242) ==27248== by 0x836742E: zend_hash_copy (zend_hash.c:754) ==27248== by 0x835D3BB: compiler_globals_ctor (zend.c:442) ==27248== by 0x835DD41: zend_post_startup (zend.c:686) ==27248== by 0x8309F2C: php_module_startup (main.c:1467) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== Address 0x3C840F11 is 3 bytes before a block of size 10 alloc'd ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x834008C: zend_strndup (zend_alloc.c:413) ==27248== by 0x834DEC8: zend_register_long_constant (zend_constants.c:170) ==27248== by 0x834DB44: zend_register_standard_constants (zend_constants.c:97) ==27248== by 0x835DBAF: zend_startup (zend.c:642) ==27248== by 0x83098FD: php_module_startup (main.c:1338) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== Invalid read of size 1 ==27248== at 0x3C01DFA5: memcpy (mac_replace_strmem.c:286) ==27248== by 0x8365A46: _zend_hash_add_or_update (zend_hash.c:242) ==27248== by 0x836742E: zend_hash_copy (zend_hash.c:754) ==27248== by 0x835D3BB: compiler_globals_ctor (zend.c:442) ==27248== by 0x835DD41: zend_post_startup (zend.c:686) ==27248== by 0x8309F2C: php_module_startup (main.c:1467) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== Address 0x3C840F10 is 4 bytes before a block of size 10 alloc'd ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x834008C: zend_strndup (zend_alloc.c:413) ==27248== by 0x834DEC8: zend_register_long_constant (zend_constants.c:170) ==27248== by 0x834DB44: zend_register_standard_constants (zend_constants.c:97) ==27248== by 0x835DBAF: zend_startup (zend.c:642) ==27248== by 0x83098FD: php_module_startup (main.c:1338) ==27248== by 0x83958F5: main (php_cli.c:621) Hello ==27248== ==27248== ERROR SUMMARY: 13281 errors from 4 contexts (suppressed: 76 from 3) ==27248== malloc/free: in use at exit: 326480 bytes in 5138 blocks. ==27248== malloc/free: 21117 allocs, 15979 frees, 1328406 bytes allocated. ==27248== For counts of detected errors, rerun with: -v ==27248== searching for pointers to 5138 not-freed blocks. ==27248== checked 15203948 bytes. ==27248== ==27248== ==27248== 5 bytes in 1 blocks are definitely lost in loss record 1 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x834008C: zend_strndup (zend_alloc.c:413) ==27248== by 0x827B7FE: OnUpdateSafeModeAllowedEnvVars (basic_functions.c:858) ==27248== by 0x836F24A: zend_ini_refresh_cache (zend_ini.c:183) ==27248== by 0x8367180: zend_hash_apply_with_argument (zend_hash.c:677) ==27248== by 0x836F294: zend_ini_refresh_caches (zend_ini.c:191) ==27248== by 0x835D6A6: zend_new_thread_end_handler (zend.c:495) ==27248== by 0x835DD92: zend_post_startup (zend.c:689) ==27248== by 0x8309F2C: php_module_startup (main.c:1467) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 12 bytes in 1 blocks are still reachable in loss record 2 of 31 ==27248== at 0x3C01EBE8: realloc (vg_replace_malloc.c:162) ==27248== by 0x8363627: zend_class_implements (zend_API.c:1540) ==27248== by 0x82165C1: zm_startup_spl_array (spl_array.c:872) ==27248== by 0x8210452: zm_startup_spl (php_spl.c:89) ==27248== by 0x8362891: zend_register_module_ex (zend_API.c:1197) ==27248== by 0x8362959: zend_startup_module (zend_API.c:1216) ==27248== by 0x83097AA: php_startup_extensions (main.c:1264) ==27248== by 0x8396FF7: php_startup_internal_extensions (internal_functions_cli.c:138) ==27248== by 0x8309EC0: php_module_startup (main.c:1441) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 16 bytes in 1 blocks are still reachable in loss record 3 of 31 ==27248== at 0x3C01EAFB: calloc (vg_replace_malloc.c:141) ==27248== by 0x3C17A480: (within /lib/libdl-2.3.2.so) ==27248== by 0x3C17A118: dlvsym (in /lib/libdl-2.3.2.so) ==27248== by 0x3C6E0BF4: __errno_location (vg_libpthread.c:1950) ==27248== by 0x3C7D4BD3: open64 (in /lib/i686/libc-2.3.2.so) ==27248== by 0x3C727367: (within /lib/i686/libc-2.3.2.so) ==27248== by 0x3C726788: (within /lib/i686/libc-2.3.2.so) ==27248== by 0x3C725ECE: setlocale (in /lib/i686/libc-2.3.2.so) ==27248== by 0x8309B16: php_module_startup (main.c:1363) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 17 bytes in 1 blocks are definitely lost in loss record 4 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x8304905: cwd_globals_ctor (tsrm_virtual_cwd.c:177) ==27248== by 0x8304290: allocate_new_resource (TSRM.c:294) ==27248== by 0x8304399: ts_resource_ex (TSRM.c:360) ==27248== by 0x8395873: main (php_cli.c:613) ==27248== ==27248== ==27248== 32 bytes in 2 blocks are still reachable in loss record 5 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x836466C: zend_declare_property_string (zend_API.c:1896) ==27248== by 0x8373B5C: zend_register_default_exception (zend_exceptions.c:514) ==27248== by 0x83784EF: zend_register_default_classes (zend_default_classes.c:33) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 40 bytes in 10 blocks are still reachable in loss record 6 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x3C01EB6D: realloc (vg_replace_malloc.c:154) ==27248== by 0x8363627: zend_class_implements (zend_API.c:1540) ==27248== by 0x8371BF1: zend_register_interfaces (zend_interfaces.c:423) ==27248== by 0x83784E1: zend_register_default_classes (zend_default_classes.c:32) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 44 bytes in 1 blocks are definitely lost in loss record 7 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x836EED7: zend_copy_ini_directives (zend_ini.c:105) ==27248== by 0x835D696: zend_new_thread_end_handler (zend.c:494) ==27248== by 0x835DD92: zend_post_startup (zend.c:689) ==27248== by 0x8309F2C: php_module_startup (main.c:1467) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 44 bytes in 1 blocks are definitely lost in loss record 8 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x835D3F8: compiler_globals_ctor (zend.c:448) ==27248== by 0x835DD41: zend_post_startup (zend.c:686) ==27248== by 0x8309F2C: php_module_startup (main.c:1467) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 44 bytes in 1 blocks are definitely lost in loss record 9 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x835D35A: compiler_globals_ctor (zend.c:440) ==27248== by 0x835DD41: zend_post_startup (zend.c:686) ==27248== by 0x8309F2C: php_module_startup (main.c:1467) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 44 bytes in 1 blocks are definitely lost in loss record 10 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x835D2EE: compiler_globals_ctor (zend.c:436) ==27248== by 0x835DD41: zend_post_startup (zend.c:686) ==27248== by 0x8309F2C: php_module_startup (main.c:1467) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 44 bytes in 1 blocks are definitely lost in loss record 11 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x82D426E: OnUpdateTags (url_scanner_ex.re:57) ==27248== by 0x836F169: zend_register_ini_entries (zend_ini.c:158) ==27248== by 0x82D5BBA: zm_startup_url_scanner_ex (url_scanner_ex.re:486) ==27248== by 0x827C0F0: zm_startup_basic (basic_functions.c:1073) ==27248== by 0x8362891: zend_register_module_ex (zend_API.c:1197) ==27248== by 0x8362959: zend_startup_module (zend_API.c:1216) ==27248== by 0x83097AA: php_startup_extensions (main.c:1264) ==27248== by 0x8396FF7: php_startup_internal_extensions (internal_functions_cli.c:138) ==27248== by 0x8309EC0: php_module_startup (main.c:1441) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 48 bytes in 3 blocks are still reachable in loss record 12 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x83645C6: zend_declare_property_long (zend_API.c:1881) ==27248== by 0x8373BAD: zend_register_default_exception (zend_exceptions.c:516) ==27248== by 0x83784EF: zend_register_default_classes (zend_default_classes.c:33) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 82 bytes in 7 blocks are still reachable in loss record 13 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x83497B6: zend_mangle_property_name (zend_compile.c:2601) ==27248== by 0x8364366: zend_declare_property (zend_API.c:1835) ==27248== by 0x8364733: zend_declare_property_string (zend_API.c:1903) ==27248== by 0x8373B5C: zend_register_default_exception (zend_exceptions.c:514) ==27248== by 0x83784EF: zend_register_default_classes (zend_default_classes.c:33) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 128 bytes in 4 blocks are definitely lost in loss record 14 of 31 ==27248== at 0x3C01EAFB: calloc (vg_replace_malloc.c:141) ==27248== by 0x83654DC: _zend_hash_init (zend_hash.c:152) ==27248== by 0x827B9FA: basic_globals_ctor (basic_functions.c:940) ==27248== by 0x83040F8: ts_allocate_id (TSRM.c:245) ==27248== by 0x827BBEC: zm_startup_basic (basic_functions.c:1001) ==27248== by 0x8362891: zend_register_module_ex (zend_API.c:1197) ==27248== by 0x8362959: zend_startup_module (zend_API.c:1216) ==27248== by 0x83097AA: php_startup_extensions (main.c:1264) ==27248== by 0x8396FF7: php_startup_internal_extensions (internal_functions_cli.c:138) ==27248== by 0x8309EC0: php_module_startup (main.c:1441) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 128 bytes in 8 blocks are still reachable in loss record 15 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x8364533: zend_declare_property_null (zend_API.c:1868) ==27248== by 0x8373BD1: zend_register_default_exception (zend_exceptions.c:517) ==27248== by 0x83784EF: zend_register_default_classes (zend_default_classes.c:33) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 164 bytes in 13 blocks are still reachable in loss record 16 of 31 ==27248== at 0x3C01EBE8: realloc (vg_replace_malloc.c:162) ==27248== by 0x8347434: zend_do_inherit_interfaces (zend_compile.c:1942) ==27248== by 0x8347814: zend_do_implement_interface (zend_compile.c:2015) ==27248== by 0x83636C8: zend_class_implements (zend_API.c:1549) ==27248== by 0x82F2233: zm_startup_util (util.c:586) ==27248== by 0x8362891: zend_register_module_ex (zend_API.c:1197) ==27248== by 0x8362959: zend_startup_module (zend_API.c:1216) ==27248== by 0x83097AA: php_startup_extensions (main.c:1264) ==27248== by 0x8396FF7: php_startup_internal_extensions (internal_functions_cli.c:138) ==27248== by 0x8309EC0: php_module_startup (main.c:1441) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 200 bytes in 1 blocks are possibly lost in loss record 17 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x3C6DCE6C: my_malloc (vg_libpthread.c:334) ==27248== by 0x3C6DFB74: get_or_allocate_specifics_ptr (vg_libpthread.c:1591) ==27248== by 0x3C6DFD06: pthread_key_create (vg_libpthread.c:1628) ==27248== by 0x8303C7B: tsrm_startup (TSRM.c:111) ==27248== by 0x83957A4: main (php_cli.c:582) ==27248== ==27248== ==27248== 255 bytes in 32 blocks are still reachable in loss record 18 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x834008C: zend_strndup (zend_alloc.c:413) ==27248== by 0x835D1CF: register_standard_class (zend.c:412) ==27248== by 0x835DBA1: zend_startup (zend.c:641) ==27248== by 0x83098FD: php_module_startup (main.c:1338) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 312 bytes in 1 blocks are still reachable in loss record 19 of 31 ==27248== at 0x3C01EAFB: calloc (vg_replace_malloc.c:141) ==27248== by 0x835D18E: register_standard_class (zend.c:408) ==27248== by 0x835DBA1: zend_startup (zend.c:641) ==27248== by 0x83098FD: php_module_startup (main.c:1338) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 784 bytes in 7 blocks are still reachable in loss record 20 of 31 ==27248== at 0x3C01EBE8: realloc (vg_replace_malloc.c:162) ==27248== by 0x8365857: _zend_hash_add_or_update (zend_hash.c:225) ==27248== by 0x83465A1: do_inherit_parent_constructor (zend_compile.c:1667) ==27248== by 0x834770E: zend_do_inheritance (zend_compile.c:1995) ==27248== by 0x83635D1: zend_register_internal_class_ex (zend_API.c:1529) ==27248== by 0x8382C58: zend_register_reflection_api (zend_reflection_api.c:3357) ==27248== by 0x83784FD: zend_register_default_classes (zend_default_classes.c:34) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 1336 bytes in 97 blocks are still reachable in loss record 21 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x3C77F5CF: strdup (in /lib/i686/libc-2.3.2.so) ==27248== by 0x8371A34: zend_register_interfaces (zend_interfaces.c:420) ==27248== by 0x83784E1: zend_register_default_classes (zend_default_classes.c:32) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 4312 bytes in 98 blocks are still reachable in loss record 22 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x834D27A: zend_initialize_class_data (zend_compile.c:3726) ==27248== by 0x835D1EA: register_standard_class (zend.c:413) ==27248== by 0x835DBA1: zend_startup (zend.c:641) ==27248== by 0x83098FD: php_module_startup (main.c:1338) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 4736 bytes in 3 blocks are still reachable in loss record 23 of 31 ==27248== at 0x3C01EBE8: realloc (vg_replace_malloc.c:162) ==27248== by 0x3C4D99B3: (within /usr/lib/libcrypto.so.0.9.7) ==27248== ==27248== ==27248== 13824 bytes in 52 blocks are still reachable in loss record 24 of 31 ==27248== at 0x3C01EBE8: realloc (vg_replace_malloc.c:162) ==27248== by 0x83666B8: zend_hash_do_resize (zend_hash.c:411) ==27248== by 0x8365B5A: _zend_hash_add_or_update (zend_hash.c:255) ==27248== by 0x8362D88: zend_register_functions (zend_API.c:1302) ==27248== by 0x83634BD: do_register_internal_class (zend_API.c:1499) ==27248== by 0x83636EA: zend_register_internal_class (zend_API.c:1558) ==27248== by 0x8373AE9: zend_register_default_exception (zend_exceptions.c:509) ==27248== by 0x83784EF: zend_register_default_classes (zend_default_classes.c:33) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 15168 bytes in 443 blocks are still reachable in loss record 25 of 31 ==27248== at 0x3C01EAFB: calloc (vg_replace_malloc.c:141) ==27248== by 0x83654DC: _zend_hash_init (zend_hash.c:152) ==27248== by 0x83655CC: _zend_hash_init_ex (zend_hash.c:175) ==27248== by 0x834D21D: zend_initialize_class_data (zend_compile.c:3722) ==27248== by 0x835D1EA: register_standard_class (zend.c:413) ==27248== by 0x835DBA1: zend_startup (zend.c:641) ==27248== by 0x83098FD: php_module_startup (main.c:1338) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 18924 bytes in 404 blocks are still reachable in loss record 26 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x8365E6A: _zend_hash_quick_add_or_update (zend_hash.c:301) ==27248== by 0x83676CB: zend_hash_merge_ex (zend_hash.c:815) ==27248== by 0x834769E: zend_do_inheritance (zend_compile.c:1991) ==27248== by 0x83635D1: zend_register_internal_class_ex (zend_API.c:1529) ==27248== by 0x8373CC5: zend_register_default_exception (zend_exceptions.c:522) ==27248== by 0x83784EF: zend_register_default_classes (zend_default_classes.c:33) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 19880 bytes in 1565 blocks are still reachable in loss record 27 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x3C4D997B: (within /usr/lib/libcrypto.so.0.9.7) ==27248== ==27248== ==27248== 30264 bytes in 97 blocks are still reachable in loss record 28 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x8363414: do_register_internal_class (zend_API.c:1489) ==27248== by 0x8363708: zend_register_internal_interface (zend_API.c:1563) ==27248== by 0x8371AC9: zend_register_interfaces (zend_interfaces.c:420) ==27248== by 0x83784E1: zend_register_default_classes (zend_default_classes.c:32) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 46037 bytes in 968 blocks are still reachable in loss record 29 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x8365902: _zend_hash_add_or_update (zend_hash.c:236) ==27248== by 0x8362D88: zend_register_functions (zend_API.c:1302) ==27248== by 0x83634BD: do_register_internal_class (zend_API.c:1499) ==27248== by 0x8363708: zend_register_internal_interface (zend_API.c:1563) ==27248== by 0x8371BB6: zend_register_interfaces (zend_interfaces.c:422) ==27248== by 0x83784E1: zend_register_default_classes (zend_default_classes.c:32) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 48240 bytes in 397 blocks are still reachable in loss record 30 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x8365F18: _zend_hash_quick_add_or_update (zend_hash.c:308) ==27248== by 0x83676CB: zend_hash_merge_ex (zend_hash.c:815) ==27248== by 0x834769E: zend_do_inheritance (zend_compile.c:1991) ==27248== by 0x83635D1: zend_register_internal_class_ex (zend_API.c:1529) ==27248== by 0x8373CC5: zend_register_default_exception (zend_exceptions.c:522) ==27248== by 0x83784EF: zend_register_default_classes (zend_default_classes.c:33) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== ==27248== 121316 bytes in 917 blocks are still reachable in loss record 31 of 31 ==27248== at 0x3C01E378: malloc (vg_replace_malloc.c:105) ==27248== by 0x83659B0: _zend_hash_add_or_update (zend_hash.c:242) ==27248== by 0x8362D88: zend_register_functions (zend_API.c:1302) ==27248== by 0x83634BD: do_register_internal_class (zend_API.c:1499) ==27248== by 0x8363708: zend_register_internal_interface (zend_API.c:1563) ==27248== by 0x8371BB6: zend_register_interfaces (zend_interfaces.c:422) ==27248== by 0x83784E1: zend_register_default_classes (zend_default_classes.c:32) ==27248== by 0x8309EB8: php_module_startup (main.c:1438) ==27248== by 0x83958F5: main (php_cli.c:621) ==27248== ==27248== LEAK SUMMARY: ==27248== definitely lost: 370 bytes in 11 blocks. ==27248== possibly lost: 200 bytes in 1 blocks. ==27248== still reachable: 325910 bytes in 5126 blocks. ==27248== suppressed: 0 bytes in 0 blocks. marcus@frodo /usr/src/php-cvs $

Andi Gutmans

22 years ago
Yep, definitely. At 11:13 AM 7/5/2004 -0700, Rasmus Lerdorf wrote:

Bert Slagter

22 years ago
Andi Gutmans wrote:
> As I'd like to roll 5.0.0 by the end of the week, can developers please > speak up if they have anything critical they are working on? > > Andi
Still heading for end of this week? Bert

Andi Gutmans

22 years ago
I think I'll roll on Monday. There's still a patch lingering. Does anyone else have something to commit? At 09:58 AM 7/9/2004 +0200, Bert Slagter wrote:

Nuno Lopes

22 years ago
> I think I'll roll on Monday. There's still a patch lingering. > Does anyone else have something to commit?
Hi Andi, Can you please waste just a minute reading one of my previous mail (that was lost in the middle of discussions), please? I need just an answer: bug or feature :-) Thanks, Nuno http://news.php.net/php.internals/10953

Daniel Convissor

22 years ago
Hi Andi: On Fri, Jul 09, 2004 at 03:19:43PM -0700, Andi Gutmans wrote:
> I think I'll roll on Monday. There's still a patch lingering. > Does anyone else have something to commit?
http://bugs.php.net/28999 please Thanks, --Dan
-- T H E A N A L Y S I S A N D S O L U T I O N S C O M P A N Y data intensive web and database programming http://www.AnalysisAndSolutions.com/ 4015 7th Ave #4, Brooklyn NY 11232 v: 718-854-0335 f: 718-854-0409

Curt Zirzow

22 years ago
* Thus wrote Andi Gutmans:
> I think I'll roll on Monday. There's still a patch lingering. > Does anyone else have something to commit? >
This is completely broke: file_get_contents('http://php.net/'); It returns partial content. See bug #29099 Curt
-- First, let me assure you that this is not one of those shady pyramid schemes you've been hearing about. No, sir. Our model is the trapezoid!

Andi Gutmans

22 years ago
When did you try that? Did you check with latest CVS because Wez made some fixes. At 09:37 PM 7/11/2004 +0000, Curt Zirzow wrote:

Curt Zirzow

22 years ago
* Thus wrote Andi Gutmans:
> When did you try that? Did you check with latest CVS because Wez made some > fixes.
Just rechecked with current CVS version this morning and the problem still persists. Not only is it comming back with partial content, there seems to be blocks of ^@ chars between the content. Curt
-- First, let me assure you that this is not one of those shady pyramid schemes you've been hearing about. No, sir. Our model is the trapezoid!

Antony Dovgal

22 years ago
On Mon, 12 Jul 2004 15:00:09 +0000 Curt Zirzow <curt@php.net> wrote:
> * Thus wrote Andi Gutmans: > > When did you try that? Did you check with latest CVS because Wez > > made some fixes. > > Just rechecked with current CVS version this morning and the > problem still persists. > > Not only is it comming back with partial content, there seems to be > blocks of ^@ chars between the content.
Could you give a small reproduce script ? I tried it on local and remote files and it works ok for me. --- WBR, Antony Dovgal aka tony2001 tony2001@phpclub.net || antony@dovgal.com

Unnamed Person

22 years ago
it's broken for me too using latest snap: php5-win32-200407121430 file_get_contents('http://php.net/');

Curt Zirzow

22 years ago
* Thus wrote Antony Dovgal:
> On Mon, 12 Jul 2004 15:00:09 +0000 > Curt Zirzow <curt@php.net> wrote: > > > * Thus wrote Andi Gutmans: > > > When did you try that? Did you check with latest CVS because Wez > > > made some fixes. > > > > Just rechecked with current CVS version this morning and the > > problem still persists. > > > > Not only is it comming back with partial content, there seems to be > > blocks of ^@ chars between the content. > > Could you give a small reproduce script ? > I tried it on local and remote files and it works ok for me.
Its simply: <?php echo file_get_contents("http://php.net/"); ?> I rechecked this with a fresh compile from snapshot of php5-200407121630. It still occurs for me. It seems to work fine for regular files and small web pages but breaks when content from a webpage becomes a certain size. Curt
-- First, let me assure you that this is not one of those shady pyramid schemes you've been hearing about. No, sir. Our model is the trapezoid!

Red Wingate

22 years ago
works fine with the latest CVS-Snap for me php5-win32-200407121430.zip Win2K Apache2 -- red Curt Zirzow wrote:

Wez Furlong

22 years ago
There was a bugfix that wasn't merged from the 4.3 branch. Fixed in CVS now. --Wez.

Wez Furlong

22 years ago
More info please... how big is a "certain size"? How about running "strace -e trace=net" ? Even better, can you sit down and step through and find out where the read is being cut short? The thing is that file_get_contents() should not have been sensitive to the greedy read problem (since it reads in chunks anyway), so this doesn't make too much sense to me right now (but I've only spent 5 minutes looking at it; got a lot of work on). --Wez. On Mon, 12 Jul 2004 18:02:28 +0000, Curt Zirzow <curt@php.net> wrote:

Unnamed Person

22 years ago
> More info please... how big is a "certain size"?
for me, the "certain size" is right at 12kb. 12,000 bytes es ok; 12,001 no es ok. i would trace/step if i knew how.