Fixed Template recompile error when disabling two add-ons in short succession

Jon W

Well-known member
I just disabled (using the checkboxes on ACP homepage) two add-ons that both have template modifications for the footer template, and got the following error message:

Error Info
Zend_Db_Statement_Mysqli_Exception: Mysqli statement execute error : Duplicate entry '590-style' for key 'PRIMARY' - library\Zend\Db\Statement\Mysqli.php:214
Generated By: Jonathan Wainwright, A moment ago

Stack Trace
#0 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\Zend\Db\Statement.php(317): Zend_Db_Statement_Mysqli->_execute(Array)
#1 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\Zend\Db\Adapter\Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\Model\Template.php(1652): Zend_Db_Adapter_Abstract->query('???????INSERT I...')
#3 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\Deferred\TemplatePartialCompile.php(55): XenForo_Model_Template->compileAndInsertParsedTemplate(590, Array, 'footer', 1)
#4 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\Model\Deferred.php(190): XenForo_Deferred_TemplatePartialCompile->execute(Array, Array, 9.8444349765778, 'Rebuilding... T...')
#5 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\Model\Deferred.php(313): XenForo_Model_Deferred->runDeferred(Array, 9.8444349765778, 'Rebuilding... T...', false)
#6 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\Model\Deferred.php(266): XenForo_Model_Deferred->_runInternal(Array, 9.8444359302521, 'Rebuilding... T...', false)
#7 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\ViewRenderer\Abstract.php(344): XenForo_Model_Deferred->run(true, 9.8444359302521)
#8 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\ViewRenderer\Json.php(147): XenForo_ViewRenderer_Abstract::hasManualDeferredToRun()
#9 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\ViewRenderer\Json.php(181): XenForo_ViewRenderer_Json::_addDefaultParams(Array)
#10 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\ViewRenderer\Json.php(37): XenForo_ViewRenderer_Json::jsonEncodeForOutput(Array)
#11 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\FrontController.php(581): XenForo_ViewRenderer_Json->renderRedirect(4, 'http://localhos...', NULL, Array)
#12 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\FrontController.php(156): XenForo_FrontController->renderView(Object(XenForo_ControllerResponse_Redirect), Object(XenForo_ViewRenderer_Json), Array)
#13 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\admin.php(13): XenForo_FrontController->run()
#14 {main}
 
Last edited:

Jon W

Well-known member
Just got a similar error when re-enabling several add-ons in short succession:

Error Info
Zend_Db_Statement_Mysqli_Exception: Mysqli statement execute error : Duplicate entry '732-600' for key 'PRIMARY' - library\Zend\Db\Statement\Mysqli.php:214
Generated By: Jonathan Wainwright, 1 minute ago

Stack Trace
#0 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\Zend\Db\Statement.php(317): Zend_Db_Statement_Mysqli->_execute(Array)
#1 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\Zend\Db\Adapter\Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\Model\Template.php(1624): Zend_Db_Adapter_Abstract->query('???????INSERT I...')
#3 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\Deferred\TemplatePartialCompile.php(55): XenForo_Model_Template->compileAndInsertParsedTemplate(732, Array, 'PAGE_CONTAINER', 1)
#4 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\Model\Deferred.php(190): XenForo_Deferred_TemplatePartialCompile->execute(Array, Array, 8.1349670886993, 'Rebuilding... T...')
#5 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\Model\Deferred.php(313): XenForo_Model_Deferred->runDeferred(Array, 8.1349670886993, 'Rebuilding... T...', false)
#6 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\Model\Deferred.php(266): XenForo_Model_Deferred->_runInternal(Array, 9.7668840885162, 'Rebuilding... T...', false)
#7 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\ViewRenderer\Abstract.php(344): XenForo_Model_Deferred->run(true, 9.7668840885162)
#8 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\ViewRenderer\Json.php(147): XenForo_ViewRenderer_Abstract::hasManualDeferredToRun()
#9 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\ViewRenderer\Json.php(181): XenForo_ViewRenderer_Json::_addDefaultParams(Array)
#10 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\ViewRenderer\Json.php(37): XenForo_ViewRenderer_Json::jsonEncodeForOutput(Array)
#11 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\FrontController.php(581): XenForo_ViewRenderer_Json->renderRedirect(4, 'http://localhos...', NULL, Array)
#12 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\library\XenForo\FrontController.php(156): XenForo_FrontController->renderView(Object(XenForo_ControllerResponse_Redirect), Object(XenForo_ViewRenderer_Json), Array)
#13 C:\Program Files (x86)\Zend\Apache2\htdocs\beta4\admin.php(13): XenForo_FrontController->run()
#14 {main}

Slightly different error, but essentially the same problem.
 

Mike

XenForo developer
Staff member
I'm not 100% sure why these queries were triggering problems. As far as I know, the deletes/transactions should've prevented it. You don't happen to be using MyISAM tables do you?

Regardless, I've changed these queries so they shouldn't cause an error.
 

Jon W

Well-known member
Just got a deadlock error in RC1:

Error Info
Zend_Db_Statement_Mysqli_Exception: Mysqli statement execute error : Deadlock found when trying to get lock; try restarting transaction - library\Zend\Db\Statement\Mysqli.php:214
Generated By: Jonathan Wainwright, 1 minute ago

Stack Trace
#0 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\Zend\Db\Statement.php(317): Zend_Db_Statement_Mysqli->_execute(Array)
#1 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\Zend\Db\Adapter\Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\Zend\Db\Adapter\Abstract.php(661): Zend_Db_Adapter_Abstract->query('DELETE FROM `xf...')
#3 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\Model\Template.php(1644): Zend_Db_Adapter_Abstract->delete('xf_template_phr...', 'template_map_id...')
#4 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\Deferred\TemplatePartialCompile.php(55): XenForo_Model_Template->compileAndInsertParsedTemplate(1209, Array, 'PAGE_CONTAINER', 1)
#5 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\Model\Deferred.php(197): XenForo_Deferred_TemplatePartialCompile->execute(Array, Array, 9.5303900241852, 'Rebuilding... T...')
#6 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\Model\Deferred.php(320): XenForo_Model_Deferred->runDeferred(Array, 9.5303900241852, 'Rebuilding... T...', false)
#7 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\Model\Deferred.php(273): XenForo_Model_Deferred->_runInternal(Array, 9.5303959846497, 'Rebuilding... T...', false)
#8 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\ViewRenderer\Abstract.php(352): XenForo_Model_Deferred->run(true, 9.5303959846497)
#9 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\ViewRenderer\Json.php(147): XenForo_ViewRenderer_Abstract::hasManualDeferredToRun()
#10 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\ViewRenderer\Json.php(181): XenForo_ViewRenderer_Json::_addDefaultParams(Array)
#11 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\ViewRenderer\Json.php(37): XenForo_ViewRenderer_Json::jsonEncodeForOutput(Array)
#12 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\FrontController.php(583): XenForo_ViewRenderer_Json->renderRedirect(4, 'http://localhos...', NULL, Array)
#13 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\library\XenForo\FrontController.php(158): XenForo_FrontController->renderView(Object(XenForo_ControllerResponse_Redirect), Object(XenForo_ViewRenderer_Json), Array)
#14 C:\Program Files (x86)\Zend\Apache2\htdocs\xenforo\admin.php(13): XenForo_FrontController->run()
#15 {main}
 

Jon W

Well-known member
It should be noted that it did fix itself eventually, but still left an error in the server log.
 

Mike

XenForo developer
Staff member
Deadlocks can happen though they should be very rare. In general they're not easy to completely prevent though and they're hard to handle programmatically. A refresh/retry of the action is usually sufficient.
 
Top