#45029 [Opn->Bgs]: POST requests have an emalloc leak

From: Date: Mon, 19 May 2008 21:57:41 +0000
Subject: #45029 [Opn->Bgs]: POST requests have an emalloc leak
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-125121@lists.php.net to get a copy of this message
ID: 45029 Updated by: rasmus@php.net Reported By: rasmus@php.net -Status: Open +Status: Bogus Bug Type: cURL related Operating System: Linux/FreeBSD PHP Version: 5.3CVS-2008-05-17 (CVS) New Comment: Never mind. The combination of an infinitely growing static array and some caching in the memory manager made this look like a PHP bug when it actually wasn't. Previous Comments: ------------------------------------------------------------------------ [2008-05-17 17:39:21] rasmus@php.net Description: ------------ Adding a bug for this so we can track it. The leak size isn't constant even though the post data size in this example is constant, and the returned data (a dns error, presumably) is the same. Seems like there is something weird in our postfield handling code in the curl extension. Note also that it stabilizes somehow, although this is an extremely simplified version of a long-running command-line script that seems to grow on each post with wildly varying post data. Reproduce code: --------------- <?php function curl($post) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "www.fdhfkdsslak.bogus"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if($post) { curl_setopt($ch, CURLOPT_POST, 1); for($args='',$i=0;$i<75;$i++) $args .= "a=$i&"; curl_setopt($ch, CURLOPT_POSTFIELDS, $args); unset($args); } curl_exec($ch); curl_close($ch); } echo "start ".memory_get_usage()."\n"; for($i=0;$i<10;$i++) { curl(0); echo "GET ".memory_get_usage()."\n"; } for($i=0;$i<10;$i++) { curl(1); echo "POST ".memory_get_usage()."\n"; } ?> Expected result: ---------------- No memory_usage increase from one POST request to the next. Actual result: -------------- start 326616 GET 327256 GET 327276 GET 327276 GET 327276 GET 327276 GET 327276 GET 327276 GET 327276 GET 327276 GET 327276 POST 327516 POST 327588 POST 327652 POST 327712 POST 327892 POST 328064 POST 328228 POST 328384 POST 328528 POST 328628 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=45029&edit=1

« previous php.bugs (#125121) next »