Allowed memory size exhausted error when reading file - php

Help me, please.
When I'm trying to read a file using
$tmp = file('file.log');
I get an error
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 90 bytes) in script.php on line 37
php memory limit is 128M, size of file.log is only 48M.

It seems that something have consumed some amount of memory before. You allocate 128M for all operations, data and so on in your script. And memory has finished in this place only because your script exceeded it trying to sum, for example,
87M(uses by something earlier)+48M(your file).

Related

session_start() - cause E_ERROR - Allowed memory size of 134217728 bytes exhausted

In one of application that I maintenance (PHP based) I got the E_ERROR which is connected to the memory - "Allowed memory size of 134217728 bytes exhausted...".
I am familiar with temporary solutions like setting up higher amount of memory for the script etc. but it is just temporary solution and here I need to solve it from the roots.
I have checked amount of memory which is used after each part of code in my script by simply writing it to the log file like:
addMsg('1 - Memory Usage: ' . (memory_get_usage()/1048576) . ' MB \n');
By this method I have found out that only one simple line of code increase drastically memory usage and it is: session_start() function, which then causes this error.
Interesting thing is that this error does not occur every time scripts loads. It occurs from time to time (based on high traffic on that app, it occurs every few minutes). Also, I have found out about this error from New Relic which I use for monitoring and from logs. Although, I have never experienced myself.
Does anybody have any theoretical idea how this simple function can cause such memory usage that it cause E_ERROR?
Also, all of my errors look something like this:
Allowed memory size of 134217728 bytes exhausted (tried to allocate 10556354 bytes) in Unknown on line 0
Allowed memory size of 134217728 bytes exhausted (tried to allocate 10399243 bytes) in Unknown on line 0
Allowed memory size of 134217728 bytes exhausted (tried to allocate 8112988 bytes) in Unknown on line 0
From my point of view, it seems that script wanted to allocate less space than it was allowed and even that, error occurred. Am I right or something else is going on?

joomla Fatal error: Allowed memory size of 272629760 bytes exhausted

i have joomla, virtuemart, when enable debug mode get error.
How to fix it ? i have vps server centos
Fatal error: Allowed memory size of 272629760 bytes exhausted (tried to allocate 284095 bytes) in /plugins/system/debug/debug.php on line 1213
Fatal error: Allowed memory size of 272629760 bytes exhausted (tried to allocate 232974 bytes) in /plugins/system/debug/debug.php on line 1061
Fatal error: Allowed memory size of 272629760 bytes exhausted (tried to allocate 233968 bytes) in /plugins/system/debug/debug.php on line 1064
Fatal error: Allowed memory size of 272629760 bytes exhausted (tried to allocate 285383 bytes) in /plugins/system/debug/debug.php on line 1216
256 MB is more than enough for almost all Joomla websites. If you need more then most likely the problem will not be fixed with the allocation of more memory.
You have a memory leak somewhere (most likely caused by a recursive function that never ends) - the reason why the increase to 4 GB (4294967296 bytes) seemed to work is that the server timed out. Check this post on how to find that memory leak on your Joomla website (if you're not very technical, then start disable 3rd party modules/plugins until you find the culprit).
Just add this below line to before line or function of you getting error in your file
ini_set('memory_limit', '-1');
If you want server unlimited me usage for all function and all app, you add this line to php.ini file
memory_limit = -1
Or define max memory usage
memory_limit = 1024M
Refer this question Allowed memory size of 33554432 bytes exhausted (tried to allocate 43148176 bytes) in php
Update: Try modify your index.php like that:
define('JOOMLA_MINIMUM_PHP', '5.3.10');
ini_set('memory_limit', '-1');
if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<'))
{
die('Your host needs to use PHP ' . JOOMLA_MINIMUM_PHP . ' or higher to run this version of Joomla!');
}
Goodluck and have fun!

PHP Fatal error with fgets() : Allowed memory size of 134217728 bytes exhausted (tried to allocate 495545 bytes)

PHP Fatal error with fgets() : Allowed memory size of 134217728 bytes
exhausted (tried to allocate 495545 bytes)
I'm getting this error while reading a text file with fgets(), but with fgetc() it is working fine without any problem. This is the second txt file which i have opened in the same script. After reading the files I have a code of 200 lines which calculate some descriptors. how to eliminate this error?
Your code has exhausted your allocated memory resources.
So increase your memory limit like
<?php
ini_set('memory_limit', '6400M');
Adjust the limit according to your needs.
I had a similar problem. To itterate over it take about a set amount of lines. Get the pointer position with ftell, do something with the data, flush it and continue where you left with fseek

Wordpress Feedwordpress plugin Fatal error: memory exhausted

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 49100354 bytes) in /home/organic/public_html/wp-includes/formatting.php on line 376
I am trying to pull in 50mb feed and getting this error. I already tried increasing memory limit to 512m and 1024m, max upload size and max post size but no luck. Anybody have any clue for me?
I am on VPS and have much freedom to php upgrades.

why does the ini_set('memory_limit') doesn't work?

I am doing a file resizer feature, and when I use very high resolution images, I get this fatal error:
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to
allocate 8884 bytes) in /path/resizer.php on line 35
(resizer.php is the resizer class)
Then, when I use ini_set('memory_limit', '64MB');
.. in front of the whole block: if (isset($_FILES....))
... And i get this fatal error:
PHP Fatal error: Allowed memory size of 262144 bytes exhausted (tried to
allocate 8884 bytes) in path/resizerenter code here.php on line 35
Please note that the allocated memory has decreased while I requested an increase.
Please let me know if you know what is wrong.
Thanks a lot
check the php.ini setting: memory_limit
Maybe is already more than 64M. In case you can
ini_set('memory_limit', '128M'); or 256...
Operations with big images can happen to use huge memory!

Categories