Last modified: 2012-02-28 21:41:14 UTC

Wikimedia Bugzilla is closed!

Wikimedia has migrated from Bugzilla to Phabricator. Bug reports should be created and updated in Wikimedia Phabricator instead. Please create an account in Phabricator and add your Bugzilla email address to it.
Wikimedia Bugzilla is read-only. If you try to edit or create any bug report in Bugzilla you will be shown an intentional error message.
In order to access the Phabricator task corresponding to a Bugzilla report, just remove "static-" from its URL.
You could still run searches in Bugzilla or access your list of votes but bug reports will obviously not be up-to-date in Bugzilla.
Bug 26647 - MW holds DB transaction open across mail()
MW holds DB transaction open across mail()
Product: MediaWiki
Classification: Unclassified
Email (Other open bugs)
All All
: Normal major (vote)
: ---
Assigned To: Nobody - You can work on this!
Depends on:
  Show dependency treegraph
Reported: 2011-01-10 02:39 UTC by River Tarnell
Modified: 2012-02-28 21:41 UTC (History)
6 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Description River Tarnell 2011-01-10 02:39:42 UTC
Using r78054.

In some circumstances (sorry, I don't have a stack trace) MediaWiki holds a database transaction on 'page' open across mail().  If mail() hangs, this blocks all page views (and edits) because the page counter update query can't run.
Comment 1 Mark A. Hershberger 2011-01-18 23:12:46 UTC
When you say "some circumstance" is there any way a developer could easily reproduce this?
Comment 2 Mark A. Hershberger 2011-01-18 23:16:57 UTC
I'm not sure this is a blocker yet, but marking it a blocker anyway.
Comment 3 Mark A. Hershberger 2011-01-20 18:23:03 UTC
Removing blocker status until I hear otherwise.
Comment 4 Chad H. 2011-01-20 18:29:05 UTC
Adding myself to CC.

Was thinking aloud on IRC. First guess is a wiki using enotif that doesn't make use of the jobqueue.

River: can you give us any further info on this? Do you (somewhat) remember what you were doing to trigger it?
Comment 5 Brion Vibber 2011-01-20 18:32:11 UTC
mail() should usually be fast: this shells out to sendmail (or equiv) which ships the message into an outgoing queue managed by the mail server. It could be slow on Windows (where mail() actually calls out to an SMTP server directly), or if the local MTA sendmail binary does odd or slow things.

A better mail queuing thingy might be nice, but I'm pretty sure we've done this for the last 8 years plus or minus, so probably not a blocker.
Comment 6 River Tarnell 2011-01-21 20:45:53 UTC
As far as I can tell, the problem will appear any time MW sends mail from an edit.  So, watch a page, enable email notification and make an edit.  In our case mail() hung due to a Postfix configuration error, but you could probably replace /usr/lib/sendmail with a wrapper script to get the same effect.

Note You need to log in before you can comment on or make changes to this bug.