Jump to content

Need help with Fatal error: Allowed memory size of 262144 bytes exhausted


beckpm

Recommended Posts

I'm getting a fatal memory error and have been unable to figure out what is causing it. To make it worse, the allowed memory size does not appear to be related in any way to the memory_limit value. Here's the information:

 

Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 128 bytes) in template.php on line 164

Excerpt from template.php (line 164 is where $max is assigned):

...

else if(isDateType($type) || isTimestampType($type) || isDatetimeType($type))

{

$min = htmlentities($countpost['constraints'][$tablename][$fieldname]['min'], ENT_QUOTES);

$max = htmlentities($countpost['constraints'][$tablename][$fieldname]['max'], ENT_QUOTES);

echo "\t\tFrom: <input name=\"constraints[$tablename][$fieldname][min]\""

." type=text value=\"$min\" onclickXSSCleaned=\"toggleCalendar(this)\" readonly>\n";

echo "\t\tTo: <input name=\"constraints[$tablename][$fieldname][max]\""

." type=text value=\"$max\" onclickXSSCleaned=\"toggleCalendar(this)\" readonly>\n";

}

...

 

These two lines were included at the top of the script and printed "Base Memory Usage: 473172 Memory Limit: -1":

echo "Base Memory Usage: ". memory_get_usage() ."\n";

echo "Memory Limit: ". ini_get('memory_limit') ."\n";

I also get the same error in a slightly different location:

Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 1 bytes) in template.php on line 153

Excerpt from template.php (line 153 is the simple variable assignment of an empty string):

...

if(!isset($countpost['constraints'][$tablename][$fieldname]['value']))

$countpost['constraints'][$tablename][$fieldname]['value'] = "";

...

 

If I refresh the page repeatedly, the error will predictably occur at the same place. Once I change any code (even slightly), the location of the error will change to a new location, sometimes into an included file. The size of "tried to allocate X bytes" also changes. The only constant in this whole mess is the allowed memory size (which is ALWAYS 262144, no matter what the actual memory limit is).

 

I had previously set memory_limit to -1 in the php.ini file, which seems to have no effect on the error. I am not using a .htaccess file. Changing the memory_limit doesn't change the "allowed memory size" whether it's set to 16M, 64M or whatever.

 

I've restarted apache after each change in php.ini.

 

I have memory_get_usage in the code several times to watch the memory. There are small changes, and a change of about 300k when I first load another file. The max gets up to 1048576 bytes (memory_get_peak_usage). 1 Mb does not seem very large to me and is much smaller than the memory_limit.

 

Also, today I wrote a short php script to just use up memory.  This was just to test php and see if my installation is messed up.  It worked just fine and I got up to 128Mb used without encountering the error above.  So it's something in my code.

 

This is using php 5.3.2, apache2 2.2.14, on Ubuntu 10.04. Any insights would be greatly appreciated.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.