Welcome to Our Community

Registration on our forums are now open for some days! Feel free to sign up today.

Deadlock Avoidance by Xon 1.0.10

Workarounds for sporadic deadlocks on busy forums

  1. XenForo Rocks
    Compatible XF Versions:
    • 1.4
    • 1.5
    Additional Requirements:
    php +5.4
    License:
    MIT Licence
    Visible Branding:
    No
    XenForo's Datawriters have a _postSaveAfterTransaction() method. This method is intended to run after a database transaction is finished, but if a DataWriter is called from with-in another DataWriter, this does not happen.

    This incurs the risk that various notification actions will pull in large queries into the transaction, which increasing the risk of deadlocks on a busy forum.

    This is a formally private add-on which has been in use for about a month before being released.

    This add-on is only for busy forums which sometimes experience deadlocks on the listed conditions. Please test carefully as this add-on may break other add-ons

    • Race condition for watch thread toggle
    • Deadlock on conversations
    • Deadlock on posts
    • Deadlock on resolving/rejecting Reports

    Race condition for watch thread toggle

    Fixes a race condition when creating/removing a watch thread state

    Deadlock on conversations

    Provides a workaround for a XenForo design issue where updating conversation counters can cause deadlocks.
    • rebuilding user conversation counters occurs inside a large transaction, and is deadlock prone.

    Deadlock on posts

    Provides a workaround for a XenForo design issue where adding/removing posts can cause deadlocks.
    • updating user alert counters occurs inside a large transaction, and is deadlock prone.

    Deadlock on resolving/rejecting Reports
    Provides a workaround for a XenForo design issue where adding/removing posts can cause deadlocks.
    • Sends report resolve/reject alerts inside the transaction.


    Installation

    I recommend using Add-on install & upgrade or [TH] Install and Upgrade to install this addon.

    Contributing features or bug fixes
    Please create a Github Pull request via the "Find more info at github.com..." link.

    Contributions

    If you appreciate this addon, please consider a contribution via PayPal. Details will be provide via private conversation.

    Please contact me if you wish for different licencing arrangements.
    longhorn, shabbir12, xpmode and 6 others like this.