On Thu, Jun 22, 2017 at 8:45 PM, Jakub Zelenka <bu...@php.net> wrote:

> Hi Dmitry,
>
> I noticed that valgind reports a lot of memleaks for the master and it
> seems to be related to the freeing of registered classes on shutdown when
> running cli. I'm wondering if it can be related to your recent changes that
> were touching that parts. I haven't found the commit that caused but 7.1 is
> fine. If you don't think that it was related I will try to find it but
> wanted to check with you first.
>
> Here is a part of the output what I'm getting when running valgrind on
> debug build for master:
>
> valgrind --leak-check=full php ext/openssl/tests/openssl_digest_basic.phpt
> ...
> ... (simillar info like this for all loaded extensions like the below)
> ...
> ==4101== 648 bytes in 9 blocks are definitely lost in loss record 69 of 70
> ==4101==    at 0x4C2DB9D: malloc (vg_replace_malloc.c:299)
> ==4101==    by 0xB7DC7D: zend_register_functions (zend_API.c:2304)
> ==4101==    by 0xB7F209: do_register_internal_class (zend_API.c:2714)
> ==4101==    by 0xB7F400: zend_register_internal_class (zend_API.c:2762)
> ==4101==    by 0xB7F2BF: zend_register_internal_class_ex (zend_API.c:2734)
> ==4101==    by 0x64EFAC: zm_startup_dom (php_dom.c:643)
> ==4101==    by 0xB7C211: zend_startup_module_ex (zend_API.c:1873)
> ==4101==    by 0xB7C29B: zend_startup_module_zval (zend_API.c:1888)
> ==4101==    by 0xB8B6B1: zend_hash_apply (zend_hash.c:1507)
> ==4101==    by 0xB7C907: zend_startup_modules (zend_API.c:1999)
> ==4101==    by 0xAB2E71: php_module_startup (main.c:2269)
> ==4101==    by 0xC6B159: php_cli_startup (php_cli.c:431)
> ==4101==
> ==4101== 5,592 bytes in 78 blocks are definitely lost in loss record 70 of
> 70
> ==4101==    at 0x4C2DB9D: malloc (vg_replace_malloc.c:299)
> ==4101==    by 0xB7DC7D: zend_register_functions (zend_API.c:2304)
> ==4101==    by 0xB7CBB0: zend_register_module_ex (zend_API.c:2062)
> ==4101==    by 0xB7CC8B: zend_register_internal_module (zend_API.c:2077)
> ==4101==    by 0xAB242E: php_register_extensions (main.c:1996)
> ==4101==    by 0xC6A834: php_register_internal_extensions
> (internal_functions_cli.c:114)
> ==4101==    by 0xAB2E30: php_module_startup (main.c:2253)
> ==4101==    by 0xC6B159: php_cli_startup (php_cli.c:431)
> ==4101==    by 0xC6D40D: main (php_cli.c:1362)
> ==4101==
> ==4101== LEAK SUMMARY:
> ==4101==    definitely lost: 9,968 bytes in 142 blocks
> ==4101==    indirectly lost: 0 bytes in 0 blocks
> ==4101==      possibly lost: 0 bytes in 0 blocks
> ==4101==    still reachable: 1,518 bytes in 30 blocks
> ==4101==         suppressed: 0 bytes in 0 blocks
> ==4101== Reachable blocks (those to which a pointer was found) are not
> shown.
> ==4101== To see them, rerun with: --leak-check=full --show-leak-kinds=all
> ==4101==
> ==4101== For counts of detected and suppressed errors, rerun with: -v
> ==4101== ERROR SUMMARY: 40 errors from 40 contexts (suppressed: 0 from 0)
>
> Please let me know! Or if anyone else has an idea about the changes that
> caused it that would be great.
>
> Currently it's quite difficult to use vlagrind and find the real issues
> though...
>
> Thanks
>
> Jakub
>

These are arginfo leaks. If arginfo contains type hints, then it is copied
now, but not freed. There's an incomplete PR for this issue here:
https://github.com/php/php-src/pull/2462

Nikita

Reply via email to