PHP Fatal error: Allowed memory size of 201326592 bytes (192 megabytes) exhausted (tried to allocate 8192 bytes) in sites/all/modules/imageapi/imageapi_imagemagick.module on line 206
PHP Stack trace:
PHP 1. {main}() /root/drush/drush.php:0
PHP 2. drush_main() /root/drush/drush.php:42
PHP 3. drush_dispatch() /root/drush/drush.php:102
PHP 4. call_user_func_array() /root/drush/includes/command.inc:195
PHP 5. imagecache_drush_preset_build() /root/drush/includes/command.inc:0
PHP 6. imagecache_generate_image() sites/all/modules/imagecache/imagecache.drush.inc:154
PHP 7. imagecache_build_derivative() sites/all/modules/imagecache/imagecache.module:1250
PHP 8. imageapi_image_close() sites/all/modules/imagecache/imagecache.module:609
PHP 9. imageapi_toolkit_invoke() sites/all/modules/imageapi/imageapi.module:404
PHP 10. call_user_func_array() sites/all/modules/imageapi/imageapi.module:166
PHP 11. imageapi_imagemagick_image_close() sites/all/modules/imageapi/imageapi.module:0
PHP 12. _imageapi_imagemagick_convert() sites/all/modules/imageapi/imageapi_imagemagick.module:105
PHP 13. _imageapi_imagemagick_convert_exec()sites/all/modules/imageapi/imageapi_imagemagick.module:154
PHP 14. fgets() sites/all/modules/imageapi/imageapi_imagemagick.module:206
Happened after generating close to 1 million images via drush http://drupal.org/node/587086#comment-4014078
Comments
Comment #1
drewish commentedI don't think that's necessarily ImageAPI's fault. There's lots of code that gets executed that could be leaking but since ImageAPI makes big requests for memory it'll be the one left holding the bag when it finally runs out. I think that's exactly the reason Drush monitors memory usage and starts new processes periodically to work around this.
Comment #2
mikeytown2 commentedDrush was running the imagecache generation script for around 6 hours before it finally gave up the ghost; so it's a slow leak, wherever it is. Luckily I just needed to restart it and it kept going where it was last.
Comment #3
pribeh commentedI'm experiencing this as well. What did you do to resolve this mikeytown2?
Comment #4
mikeytown2 commented@pribeh
This was caused from running the drush generate imagecache preset. I just ran it again because the drush script only generates files that do not exist. This leak turned fatal after several hours of it running the same script. Are these the same conditions that caused this error for you or was it something else?
Comment #5
pribeh commentedHi mikeytown2, no it isn't under the same conditions. I wrote the comment in a rush and also because it's the only one similar enough to what I'm experiencing. Every so often I'll run into a node (with several cck imagefields) that when attempting to edit the node I will get a very similar report (except I'm using gd instead of imagemagick).
Comment #6
mikeytown2 commented@pribeh
sounds like GD is using up your php memory when loading a large image. This is to be expected and in your case up your php memory limit. drewish's comment in #1 makes sense for you. In my case this is the same code running again and again for several hours, slowly eating up ram for no good reason. It may not be ImageAPI that is leaking, but it does have something to do with the image generation logic. It only affects me rarely and and it has an easy solution (run the drush script again), so I haven't debugged this to find the exact cause.
Comment #7
danepowell commentedThis is still an issue with image in Drupal core. With every round of image generation by drush image-generate, I see memory usage tick up by about 30KB, until it eventually errors out. When you're dealing with hundreds of thousands of images, that's a pain. I haven't been able to narrow down where the memory leak is.