UserQuitCronjob unable to execute

  • For awhile now my UserQuitCronjob has failed to execute. Stack trace below. Let me know what information I can provide to help locate the cause.


  • DynamoGeek Can you please check the result of the query below and then invoke the user quit cronjob manually through your ACP. If it worked, compare it to the output of the same query again.

    SQL
    1. SELECT COUNT(*) FROM wcf1_user WHERE quitStarted <> 0


    In case it doesn't work even when invoked manually, please run this query to retrieve information on any deadlocks. As it may contain sensitive data I strongly recommend that you submit it through a ticket or by email to ebert@woltlab.com directly.

    SQL
    1. SHOW ENGINE InnoDB STATUS\G
  • The error I got was through the ACP. I also have similar failure issues with dailyCleanUp, userGroupAssignment, userBan, and emptyRecycleBin.


    I ran the query you gave and received a count of 182. After attempting to run the query userQuit again (it failed the same way), I ran the query again and received a count of 182 again.


    I sent the results of the InnoDB status command to you via email.

  • So it was in the end a problem from the databse server?

    Yes… no… it's complicated. With very large data rows, some innocent-looking queries can slowly become an issue. Adding more and better hardware will only work up to some point, eventually an increase in execution times is inevitable and the peformance will start to degrade.


    With this amount of data, it can also become significantly more difficult to figure out which query (or background task) is the real bottle-neck due to cross-table dependencies that can hide the true issue.

  • Now if it was only the most active. *big dramatic sigh* I'm trying!


    I've run into a few things like this, but Alexander has always been quick to respond and very capable.


    Like Alexander mentioned, for example, one of the things that's dog-slow is that little post indicator Throwholics is mentioning. When you have a few hundred thousand, maybe a million posts, it works fine. With a bajillion, it gets really, really slow to execute. Instead of doing that query "every so often" and caching it, I just fib just a little bit and return the max post ID instead. The alternative is letting a really long query hang up a bunch of queries waiting after it. It's off by a bit, but percentage-wise I'm still quite okay with it. :P I could grab a bit of info from the InnoDB info, but that's more effort than I'm willing to go through. :D

    Overall, I couldn't be happier with Woltlab. The friendliness of the community is far superior to SMF in general, and (granted, due at least in part to its paid nature) the support is immensely superior.