• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

XF 1.2 Error Messages

Inkman

Active member
#1
I have just been un-installing two addons and i done one and got an error so refreshed and it was fine so started uninstalling the next and that made an error and then went onto the next one and in the middle of it it came up with:
Server Error
Mysqli statement execute error : Deadlock found when trying to get lock; try restarting transaction

  1. Zend_Db_Statement_Mysqli->_execute() in Zend/Db/Statement.php at line 297
  2. Zend_Db_Statement->execute() in Zend/Db/Adapter/Abstract.php at line 479
  3. Zend_Db_Adapter_Abstract->query() in Zend/Db/Adapter/Abstract.php at line 661
  4. Zend_Db_Adapter_Abstract->delete() in XenForo/Model/AdminTemplate.php at line 284
  5. XenForo_Model_AdminTemplate->deleteAdminTemplatesForAddOn() in XenForo/Model/AddOn.php at line 437
  6. XenForo_Model_AddOn->deleteAddOnMasterData() in XenForo/DataWriter/AddOn.php at line 204
  7. XenForo_DataWriter_AddOn->_postDelete() in XenForo/DataWriter.php at line 1767
  8. XenForo_DataWriter->delete() in XenForo/ControllerAdmin/AddOn.php at line 122
  9. XenForo_ControllerAdmin_AddOn->actionDelete() in XenForo/FrontController.php at line 337
  10. XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 134
  11. XenForo_FrontController->run() in /home/wirralta/public_html/admin.php at line 13
The other error was:
Server Error
Mysqli prepare error: Table 'wirralta_xenforo.xentrader_user' doesn't exist

  1. Zend_Db_Statement_Mysqli->_prepare() in Zend/Db/Statement.php at line 115
  2. Zend_Db_Statement->__construct() in Zend/Db/Adapter/Mysqli.php at line 381
  3. Zend_Db_Adapter_Mysqli->prepare() in Zend/Db/Adapter/Abstract.php at line 478
  4. Zend_Db_Adapter_Abstract->query() in Zend/Db/Adapter/Abstract.php at line 753
  5. Zend_Db_Adapter_Abstract->fetchRow() in XenForo/Model/User.php at line 397
  6. XenForo_Model_User->getUserById() in XenForo/Model/User.php at line 883
  7. XenForo_Model_User->getVisitingUserById() in Merc/ProfileCompletion/Model/User.php at line 30
  8. Merc_ProfileCompletion_Model_User->getVisitingUserById() in XenForo/Visitor.php at line 407
  9. XenForo_Visitor::setup() in XenForo/Session.php at line 366
  10. XenForo_Session::startAdminSession() in XenForo/ControllerAdmin/Abstract.php at line 48
  11. XenForo_ControllerAdmin_Abstract->_setupSession() in XenForo/Controller.php at line 304
  12. XenForo_Controller->preDispatch() in XenForo/FrontController.php at line 336
  13. XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 134
  14. XenForo_FrontController->run() in /home/wirralta/public_html/admin.php at line 13
And now cannot do anything on my site, can anyone help please? Never had this happen before :(
 

Inkman

Active member
#2
Just a little update i cant even try and login it just keeps going back to the server error please try again later. and if i try and go to my admin login it comes up with the second error message above.
 

Digital Doctor

Well-known member
#4
Mysqli prepare error: Table doesn't exist [info]

This happens if you don't close your forum before you do the upgrade (ie, new files, old database).

Expected right now and it's not really possible to prevent every possible error (especially fatal ones). For big upgrades, I would recommend that you close off access to the forum while upgrading (or accept errors may occur).
 

Inkman

Active member
#5
No definitely not clearing with a refresh, like i said in my last post i cant even try and login it just keeps going back to the server error please try again later. and if i try and go to my admin login it comes up with the second error message above. So the deadlock error seemed to be just from un-installing an addon... So gutted just dont know what to do now :(
 

Digital Doctor

Well-known member
#13
Its ok @Mike helped me and got it resolved.
Thanks to everyone that tried to help.
What did he do ... so others in the future can be helped ?

I read this on stackoverflow ... it's how to avoid deadlocks from a programming perspective ... so I guess it won't help. :(

If you are using InnoDB or any row-level transactional RDBMS, then it is possible that any write transaction can cause a deadlock, even in perfectly normal situations. Larger tables, larger writes, and long transaction blocks will often increase the likelihood of deadlocks occurring. In your situation, it's probably a combination of these.

The only way to truly handle deadlocks is to write your code to expect them. This generally isn't very difficult if your database code is well written. Often you can just put a try/catch around the query execution logic and look for a deadlock when errors occur. If you catch one, the normal thing to do is just attempt to execute the failed query again.

I highly recommend you read this page in the MySQL manual. It has a list of things to do to help cope with deadlocks and reduce their frequency.

this page is ..
http://dev.mysql.com/doc/refman/5.0/en/innodb-deadlocks.html

Deadlocks are a classic problem in transactional databases, but they are not dangerous unless they are so frequent that you cannot run certain transactions at all. Normally, you must write your applications so that they are always prepared to re-issue a transaction if it gets rolled back because of a deadlock.

InnoDB uses automatic row-level locking. You can get deadlocks even in the case of transactions that just insert or delete a single row. That is because these operations are not really “atomic”; they automatically set locks on the (possibly several) index records of the row inserted or deleted.

Sounds like these deadlocks are inevitable.
 

Inkman

Active member
#14
He asked me to disable the add-ons and then to make sure the add-on i was getting error messages for (xentrader) was un-installed totally and then to re-install it again and then once that was done, finally un-install it again and funnily enough it worked. Simple but effective lol.