Drupal 7站点在保存节点时内存耗尽


Drupal 7 site maxing out memory when saving node

保存特定节点时,我的Drupal 7遇到WSOD,这会显示在错误日志中:

PHP Fatal error:  Allowed memory size of 633339904 bytes exhausted (tried to allocate 84 bytes) in /var/www/mysite.org/includes/form.inc on line 1780, referer: http://mysite.or/node/193/edit

保存其他节点时,此节点似乎有问题。我怎样才能弄清楚是什么函数使内存最大化?你是如何开始调试这样的东西的?如果Drupal在看门狗中记录了一个错误,但也没有,那会更有帮助。

正如您将看到的,PHP有大量的600M允许内存(这是一个16GB RAM的大型站点)。

有什么想法吗?

从技术上讲,您可以捕获关闭函数中的错误:

register_shutdown_function(function() {
  var_dump(error_get_last());
});

但是,如果您已经有了发生问题的类型、文件和行,那就没有多大用处了。在实践中,您通常希望通过在需要的地方插入debug_backtrace()var_dump()die()语句来了解发生了什么。