Magento突然开始抛出错误:最近没有做出任何改变

时间:2013-11-20 17:35:50

标签: magento magento-1.4

Magento昨天开始抛出错误,没有任何原因。没有对文件进行任何更改,也没有添加任何内容。有什么建议? magento版本是1.4我已经包含了下面的错误日志。

由于

错误记录

a:4:{i:0;s:70:"Mage registry key "_singleton/aitsys/rewriter_observer" already exists";i:1;s:2732:"#0 /home/solarcon/public_html/shop/app/Mage.php(192): Mage::throwException('Mage registry k...')
#1 /home/solarcon/public_html/shop/app/Mage.php(446): Mage::register('_singleton/aits...', false)
#2 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/App.php(1209): Mage::getSingleton('aitsys/rewriter...')
#3 /home/solarcon/public_html/shop/app/Mage.php(416): Mage_Core_Model_App->dispatchEvent('resource_get_ta...', Array)
#4 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/Resource.php(167): Mage::dispatchEvent('resource_get_ta...', Array)
#5 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(265): Mage_Core_Model_Resource->getTableName('core/store_grou...')
#6 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(247): Mage_Core_Model_Mysql4_Abstract->getTable('store_group')
#7 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/Mysql4/Collection/Abstract.php(137): Mage_Core_Model_Mysql4_Abstract->getMainTable()
#8 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/Mysql4/Collection/Abstract.php(174): Mage_Core_Model_Mysql4_Collection_Abstract->getMainTable()
#9 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/Mysql4/Collection/Abstract.php(117): Mage_Core_Model_Mysql4_Collection_Abstract->_initSelect()
#10 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/Config.php(1208): Mage_Core_Model_Mysql4_Collection_Abstract->__construct(Object(Mage_Core_Model_Mysql4_Store_Group))
#11 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/Config.php(1241): Mage_Core_Model_Config->getModelInstance('core_mysql4/sto...', Object(Mage_Core_Model_Mysql4_Store_Group))
#12 /home/solarcon/public_html/shop/app/Mage.php(460): Mage_Core_Model_Config->getResourceModelInstance('core/store_grou...', Object(Mage_Core_Model_Mysql4_Store_Group))
#13 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/Abstract.php(208): Mage::getResourceModel('core/store_grou...', Object(Mage_Core_Model_Mysql4_Store_Group))
#14 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/Abstract.php(213): Mage_Core_Model_Abstract->getResourceCollection()
#15 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/App.php(536): Mage_Core_Model_Abstract->getCollection()
#16 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/App.php(393): Mage_Core_Model_App->_initStores()
#17 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/App.php(299): Mage_Core_Model_App->_initCurrentStore('', 'store')
#18 /home/solarcon/public_html/shop/app/Mage.php(596): Mage_Core_Model_App->run(Array)
#19 /home/solarcon/public_html/shop/index.php(80): Mage::run('', 'store')
#20 {main}";s:3:"url";s:59:"/shop/specials/enphase-ac-extension-cable-12-feet-d380.html";s:11:"script_name";s:15:"/shop/index.php";}

1 个答案:

答案 0 :(得分:4)

首先,我会抛弃你对“没有改变”的假设。由于Magento的各种缓存,新代码/配置部署实际上对系统产生影响可能需要数小时甚至数天。

其次,你使用的是Magento的过时版本。这个事实经常与一个非常“改变它的默认状态”Magento相吻合。这意味着您的问题可能没有一般的答案,只有开发人员调查您的确切系统才能解决您的问题。

查看您的调用堆栈,它会在resource_get_tablename事件触发时显示

#3 /home/solarcon/public_html/shop/app/Mage.php(416): Mage_Core_Model_App->dispatchEvent('resource_get_ta...', Array)

有一个观察者配置了一个以aitsys/rewriter...开头的模型名称(PHP切断了完整的别名)。

#2 /home/solarcon/public_html/shop/app/code/core/Mage/Core/Model/App.php(1209): Mage::getSingleton('aitsys/rewriter...')

每当Magento实例化单例事件观察者(或任何单例模型)时,它会将其添加到注册表中,并调用Mage::register

#1 /home/solarcon/public_html/shop/app/Mage.php(446): Mage::register('_singleton/aits...', false)

但是,对于您的系统,Magento认为注册表中已存在该模型/密钥名称的条目

  

Mage注册表项“_singleton / aitsys / rewriter_observer”已经存在

HOWEVER ,在库存Magento系统中,这绝不应该发生,因为getSingleton在尝试实例化模型之前检查注册表

public static function getSingleton($modelClass='', array $arguments=array())
{
    $registryKey = '_singleton/'.$modelClass;
    if (!self::registry($registryKey)) {
        self::register($registryKey, self::getModel($modelClass, $arguments));
    }
    return self::registry($registryKey);
}

这让我相信你的核心系统已被改变。此外,观察者模型(aitsys/rewriter_observer)的名称来自名为AITOC的众所周知(如果臭名昭着)的扩展提供程序。他们臭名昭着是因为他们改变了你的代码Magento系统来实现他们自己的一些系统,包括他们的DRM-ish许可系统。鉴于它们的扩展导致了这个问题,你可能会有一些运气与他们的支持人员联系。

鉴于这一切,有人能够在这里找到答案是值得怀疑的。希望上述信息可以帮助您(或您的开发人员)自行调试。