XF 2.1 Approving items in approval queue does not work

Nicky Vermeersch

Active member
Hello, on some of our forums when people post content, it is passed through the moderation queue at all times. Other times it is because something gets flagged because of a keyword.

When going to the approval queue i see the new thread, but when approving it does not process the actual thread. When clicking 'Save' at the approval queue, it just seems that the site is loading slower than normal, but the web page gets refreshed so I assumed things worked.
I am not receiving any errors in the console of my browser. I think I do receive a server error in the xenforo logs:

Code:
    XF\Db\Exception: Job XF:ApprovalQueueProcess: MySQL query error [1205]: Lock wait timeout exceeded; try restarting transaction src/XF/Db/AbstractStatement.php:217

    Generated by: Unknown account Jan 31, 2019 at 8:03 PM

Stack trace

UPDATE  `xf_thread` SET `discussion_state` = ? WHERE `thread_id` = 5308
------------

#0 src/XF/Db/Mysqli/Statement.php(196): XF\Db\AbstractStatement->getException('MySQL query err...', 1205, 'HY000')
#1 src/XF/Db/Mysqli/Statement.php(77): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1205, 'HY000')
#2 src/XF/Db/AbstractAdapter.php(89): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(277): XF\Db\AbstractAdapter->query('UPDATE  `xf_thr...', Array)
#4 src/XF/Mvc/Entity/Entity.php(1457): XF\Db\AbstractAdapter->update('xf_thread', Array, '`thread_id` = 5...')
#5 src/XF/Mvc/Entity/Entity.php(1184): XF\Mvc\Entity\Entity->_saveToSource()
#6 src/XF/Service/Thread/Approver.php(37): XF\Mvc\Entity\Entity->save()
#7 src/XF/ApprovalQueue/Thread.php(27): XF\Service\Thread\Approver->approve()
#8 [internal function]: XF\ApprovalQueue\Thread->actionApprove(Object(EWR\Discord\Entity\Thread))
#9 src/XF/ApprovalQueue/AbstractHandler.php(120): call_user_func_array(Array, Array)
#10 src/XF/Job/ApprovalQueueProcess.php(67): XF\ApprovalQueue\AbstractHandler->performAction('approve', Object(EWR\Discord\Entity\Thread))
#11 src/XF.php(478): XF\Job\ApprovalQueueProcess->XF\Job\{closure}()
#12 src/XF/Job/ApprovalQueueProcess.php(68): XF::asVisitor(Object(EWR\Discord\Entity\User), Object(Closure))
#13 src/XF/Job/Manager.php(253): XF\Job\ApprovalQueueProcess->run(G)
#14 src/XF/Job/Manager.php(195): XF\Job\Manager->runJobInternal(Array, G)
#15 src/XF/Job/Manager.php(111): XF\Job\Manager->runJobEntry(Array, G)
#16 job.php(21): XF\Job\Manager->runByIds(Array, 8)
#17 {main}

Request state

array(4) {
  ["url"] => string(8) "/job.php"
  ["referrer"] => string(45) "https://www.mcmiddleearth.com/approval-queue/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(5) {
    ["only_ids"] => array(1) {
      [0] => string(3) "185"
    }
    ["_xfRequestUri"] => string(16) "/approval-queue/"
    ["_xfWithData"] => string(1) "1"
    ["_xfToken"] => string(8) "********"
    ["_xfResponseType"] => string(4) "json"
  }
}
 
I see reference to a third party add-on in the trace -- EWR\Discord -- so that could be relevant.

Does the issue still occur with that add-on disabled?
 
This type of error (lock wait timeout) is actually sort of the wrong half of the equation. This request is being blocked because something else is taking a very long time (within a transaction). Unfortunately, that can make debugging hard as what's holding the transaction needs to be identified.

Is this the error that happens every time? I would agree with confirming with add-ons disabled though.
 
Top Bottom