https://bugzilla.wikimedia.org/show_bug.cgi?id=70153

            Bug ID: 70153
           Summary: MessageGroupStats co-operative deadlock with
                    transactions and GET_LOCK
           Product: MediaWiki extensions
           Version: master
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: Unprioritized
         Component: Translate
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected],
                    [email protected], [email protected]
       Web browser: ---
   Mobile Platform: ---

This is related to bug 51410, but looks like a new form of the old problem
introduced by that fix.

On mediawikiwiki master queries experience lock-wait-timeout in what looks like
an effective deadlock between transactions and co-operative locks.

SELECT /* MessageGroupStats::forItemInternal */
GET_LOCK('MessageGroupStats:modify:page-MediaWiki-Vagrant', 1) AS lockstatus;

UPDATE /* LinksUpdate::updateLinksTimestamp */  `page` SET page_links_updated =
'20140829051059' WHERE page_id = '226112';

The queries are unrelated. The LinksUpdate query is perfectly ok until
MessageGroupStats appears.

From the database end, it looks like MessageGroupStats get_lock() is called in
a loop by a connection which can already have an open transaction with row
locks on the page and translate_groupstats tables.

When the co-op lock is not acquired quickly, MessageGroupStats transactions
bottleneck and queue up, collectively holding many row locks and blocking other
queries like LinksUpdate *and whichever MessageGroupStats connection already
holds the co-op lock*.

We should not be combining transactions and co-operative locking in this
manner.

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.
_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to