Bug #73889 [Com]: memory leaks / valgrind report

From: Date: Thu, 09 Mar 2017 19:01:06 +0000
Subject: Bug #73889 [Com]: memory leaks / valgrind report
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-207764@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=73889&edit=1

 ID:                 73889
 Comment by:         spam2 at rhsoft dot net
 Reported by:        spam2 at rhsoft dot net
 Summary:            memory leaks / valgrind report
 Status:             Feedback
 Type:               Bug
 Package:            MySQLi related
 PHP Version:        7.1.3
 Block user comment: N
 Private report:     N

 New Comment:

:-( 

it's running the complete testsuite / crwaling of our core-cms originally setup for
profile-guided-optimization whichin the rpmbuild-process


Previous Comments:
------------------------------------------------------------------------
[2017-03-09 17:16:44] nikic@php.net

I was not able to determine the source of this leak by just looking at the code. What is leaking
here are field names from result metadata, but I was not able to find the codepath where these are
not freed. I'm afraid this is not going to move forward without a reproduce case.

------------------------------------------------------------------------
[2017-03-03 11:09:05] spam2 at rhsoft dot net

updated component and version

------------------------------------------------------------------------
[2017-03-03 11:08:12] spam2 at rhsoft dot net

frankly this still exists with 7.1.3RC1 and no feedback at all after trying to provide the requested
informations is not cool

==28119== 86,312 bytes in 2,201 blocks are definitely lost in loss record 137 of 137
==28119==    at 0x4C2BBAD: malloc (vg_replace_malloc.c:299)
==28119==    by 0x6C83555: __zend_malloc (zend_alloc.c:2820)
==28119==    by 0x6BD4244: zend_string_alloc (zend_string.h:122)
==28119==    by 0x6BD42DA: zend_string_init (zend_string.h:158)
==28119==    by 0x6BDC0A8: php_mysqlnd_rset_field_read (mysqlnd_wireprotocol.c:1378)
==28119==    by 0x6C01598: mysqlnd_mysqlnd_res_meta_read_metadata_pub (mysqlnd_result_meta.c:76)
==28119==    by 0x6BF6A5D: mysqlnd_mysqlnd_res_read_result_metadata_pub (mysqlnd_result.c:385)
==28119==    by 0x6BF7BD7: mysqlnd_query_read_result_set_header (mysqlnd_result.c:539)
==28119==    by 0x6C097FC: mysqlnd_com_reap_result_run (mysqlnd_commands.c:764)
==28119==    by 0x6BC375F: mysqlnd_mysqlnd_conn_data_reap_query_pub (mysqlnd_connection.c:917)
==28119==    by 0x6BC2EB2: mysqlnd_mysqlnd_conn_data_query_pub (mysqlnd_connection.c:859)
==28119==    by 0x12BEC857: zif_mysqli_query (mysqli_nonapi.c:593)

------------------------------------------------------------------------
[2017-01-21 18:28:35] spam2 at rhsoft dot net

any news here?

memleaks are really serious because you need to configure the server be it httpd or fpm to more
often restart forkers and that has a performance impact up to not even get the machine to 100% CPU
because it's busy with fork processes

"MaxRequestsPerChild 100" - 70% CPU
Concurrency Level: 150
Time taken for tests: 31.819 seconds
Complete requests: 100000
Failed requests: 0
Total transferred: 397837794 bytes
HTML transferred: 360737544 bytes
Requests per second: 3142.74 [#/sec] (mean)
Time per request: 47.729 [ms] (mean)
Time per request: 0.318 [ms] (mean, across all concurrent requests)
Transfer rate: 12209.95 [Kbytes/sec] received

"MaxRequestsPerChild 100000" - 90% CPU
Concurrency Level: 150
Time taken for tests: 24.304 seconds
Complete requests: 100000
Failed requests: 0
Total transferred: 397835334 bytes
HTML transferred: 360735110 bytes
Requests per second: 4114.62 [#/sec] (mean)
Time per request: 36.455 [ms] (mean)
Time per request: 0.243 [ms] (mean, across all concurrent requests)
Transfer rate: 15985.74 [Kbytes/sec] received

------------------------------------------------------------------------
[2017-01-11 10:57:58] spam2 at rhsoft dot net

7.1.1 RC1 some line numbers changed

==28074== 82,976 bytes in 2,124 blocks are definitely lost in loss record 136 of 136
==28074==    at 0x4C2BBAD: malloc (vg_replace_malloc.c:299)
==28074==    by 0x6C89E18: __zend_malloc (zend_alloc.c:2820)
==28074==    by 0x6BDABC8: zend_string_alloc (zend_string.h:122)
==28074==    by 0x6BDAC5E: zend_string_init (zend_string.h:158)
==28074==    by 0x6BE2A2C: php_mysqlnd_rset_field_read (mysqlnd_wireprotocol.c:1378)
==28074==    by 0x6C07F07: mysqlnd_mysqlnd_res_meta_read_metadata_pub (mysqlnd_result_meta.c:76)
==28074==    by 0x6BFD3CC: mysqlnd_mysqlnd_res_read_result_metadata_pub (mysqlnd_result.c:385)
==28074==    by 0x6BFE546: mysqlnd_query_read_result_set_header (mysqlnd_result.c:539)
==28074==    by 0x6C1016B: mysqlnd_com_reap_result_run (mysqlnd_commands.c:764)
==28074==    by 0x6BCA0E3: mysqlnd_mysqlnd_conn_data_reap_query_pub (mysqlnd_connection.c:917)
==28074==    by 0x6BC9836: mysqlnd_mysqlnd_conn_data_query_pub (mysqlnd_connection.c:859)
==28074==    by 0xA3C0BE5: zif_mysqli_query (mysqli_nonapi.c:593)

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


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=73889


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


Thread (11 messages)

« previous php.bugs (#207764) next »