Prestashop 1.6.1.11(500)内部服务器错误(关联)字节已用尽

Bea*_*iie 5 php caching prestashop

我已经在Prestashop论坛上发布了一个问题一段时间,关于一个我不确定如何解决的问题.我会将下面的链接发布到原始问题,我将非常感谢您就此问题获得的任何帮助.

初步Prestashop论坛问题.


Prestashop 1.6.1.11:每次我访问某些产品并尝试编辑他们的关联时,我都会收到错误通知;

(500内部服务器错误)

加载选项卡时发生服务器错误:无法加载某些选项卡.请刷新页面再试一次.如果您仍然遇到此问题,请检查您的服务器日志或联系您的托管服务提供商以获取帮助.

我完成了几个步骤,尝试识别错误,如下面的代码片段所示,结果我能够返回一些有关错误的详细信息.

<php

// I enabled dev mode via config/defines.inc.php
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', true);
}

?>
Run Code Online (Sandbox Code Playgroud)

重新跟踪我试图重现错误的步骤.

这是我的结果......

致命错误:第69行的/classes/cache/CacheFs.php中允许的内存大小为134217728个字节(尝试分配8192个字节)

我向前迈了几步,希望能够纠正这个问题,但一切都无济于事.我将列出我在下面尝试的步骤;

  • 调整我的php.ini以允许完整的内存限制,我将发布下面的完整副本. (memory_limit = 128M)
  • 联系我的托管服务提供商,在我的服务器上安装了"xCache"缓存模块,希望能绕过默认的缓存解决方案并找到可能的修复方法.但是目前这是不可能的.
  • 检查最近安装的模块问题.(没有找到)


我已经在网上进行了一些进一步的挖掘,但大多数解决方案看起来很普遍,例如重建代码以减少内存密集.可悲的是,我对我用现有知识可靠地解决这个问题的能力不够自信,我正在寻求关于如何解决这个错误的一些建议.

问候,-B

编辑

进一步挖掘后和禁用缓存后,我的错误位置已更改为; Adapter/Adapter_EntityMapper.php on line 98.

LSe*_*rni 3

你已经用完了 128M,还用完了 1024M,这很可笑(实际上,128M 本身就很可笑)。

这不太可能是标准泄漏;看起来更像是循环分配。这几乎就像实体映射器找到了另一个实体的链接实体的链接,通过康莫迪斯的再循环,将其带回到第一个实体。当尝试解析实体关系属性图时,每个循环都会在嵌套结构中分配更多内存,直到耗尽所有可用内存。

举个例子,甚至在 PHP 中也不行:

ProductA: {
    Name: "Phone charger",
    Details: {
         Accessories: {
             ProductB: {
                 Name: "Phone charger cable",
                 Details: {
                     Accessories: {
                         ProductA: {
                             Name: "Phone charger",
                             Details: {
                                 ...
Run Code Online (Sandbox Code Playgroud)

您能否验证有效产品和无效产品之间的产品属性结构是否相同?