From: s dot araya at numisys dot com dot ar Operating system: Linux (Gentoo) PHP version: 5.0.3 PHP Bug Type: Math related Bug description: GMP functions didn't free memory
Description: ------------ Hello, I'm using gmp library to perform a function which uses a few operations with large integer values. My script runs in console mode (at least four hours of processing), scanning a big mysql table and invoking the function to calculate big integer values that are stored in the table. But, in case the table has a lot of rows to process, the script halt with 'out of memory' error. Studying the problem I realized that GMP functions didn't free memory (when I issue unset( <resource> ) ) and continue allocate memory in every function pass. There is no gmp_free() in php manual. Is there any workaround to avoid the problem? Thank you, Sebastián Araya Numisys S.A. Reproduce code: --------------- for( $i = 0; $i = 1000000; $i++) store_calc_value( $i ); function store_calc_value( $v ) { $a = gmp_mul( $v, "0x100000000" ); $b = gmp_mul( $a, "0x1000" ); $sql = "Insert into t (big, value) Values ("; $sql.= gmp_strval( $a ) . ", " . gmp_strval( $b ) . ")"; mysql_query( $sql ); unset( $a ); // gmp_free( $a ); unset( $b ); // gmp_free( $b ); } Expected result: ---------------- I expect that memory has to be freed once returning from function store_calc_value(). A simple top command in another Linux session, tell me that php resource continue to grow. -- Edit bug report at http://bugs.php.net/?id=33249&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=33249&r=trysnapshot4 Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=33249&r=trysnapshot50 Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=33249&r=trysnapshot51 Fixed in CVS: http://bugs.php.net/fix.php?id=33249&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=33249&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=33249&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=33249&r=needscript Try newer version: http://bugs.php.net/fix.php?id=33249&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=33249&r=support Expected behavior: http://bugs.php.net/fix.php?id=33249&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=33249&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=33249&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=33249&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=33249&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=33249&r=dst IIS Stability: http://bugs.php.net/fix.php?id=33249&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=33249&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=33249&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=33249&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=33249&r=mysqlcfg