#48416 [Opn->Csd]: Memleak in ereg() and eregi() functions
| From: | scottmac@php.net | Date: | Fri, 29 May 2009 23:14:01 +0000 |
| Subject: | #48416 [Opn->Csd]: Memleak in ereg() and eregi() functions | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-137883@lists.php.net to get a copy of this message | ||
ID: 48416
Updated by: scottmac@php.net
Reported By: bmorel at ssi dot fr
-Status: Open
+Status: Closed
Bug Type: Regexps related
Operating System: CentOS 5.3
PHP Version: 5.2.9
New Comment:
I just downloaded a snapshot of 5.2 to check and its definitely fixed.
Memory peaks at 4mb, you must be doing something wrong.
Previous Comments:
------------------------------------------------------------------------
[2009-05-29 21:39:03] bmorel at ssi dot fr
Thanks, but the problem is still there in the latest snapshots.
Just verified it on :
php5.2-200905292030
php5.3-200905292030
php6.0-200905292030
Memory usage still gets so high !
Ben
------------------------------------------------------------------------
[2009-05-29 00:06:16] scottmac@php.net
Fixed in 5.2 as well now.
------------------------------------------------------------------------
[2009-05-28 21:58:10] scottmac@php.net
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
Added a LRU and a cache limit to the ereg code for 5.3.
Give it a few hours and grab another 5.3 snapshot, not sure about
fixing this in 5.2. Will check with ilia.
------------------------------------------------------------------------
[2009-05-28 18:17:49] bmorel at ssi dot fr
Sorry, same problem with this snapshot (PHP 5.3.0RC3-dev :
php5.3-200905281630).
The cache seems to be a good explanation, but it this a good idea ?
I have millions of ereg()s done when I parse huge XML files (several
GB), and my memory usage goes too high. I had to replace all my ereg()s
with preg_match()s.
Thanks,
Ben
------------------------------------------------------------------------
[2009-05-28 17:30:21] scottmac@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.3-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
Pretty sure this is due to the regular expression cache we have, each
unique regular expression is cached so we don't keep compiling it but
there is no cap on the number we store.
Can you try a 5.3 snapshot, I think we switched from using ereg to pcre
with 5.3.
------------------------------------------------------------------------
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
http://bugs.php.net/48416
--
Edit this bug report at http://bugs.php.net/?id=48416&edit=1