Page MenuHomePhabricator

Flow page content dumps not resilient when database goes away
Open, MediumPublic

Description

[c1abbccac655cbd517489de8] [no req] Wikimedia\Rdbms\DBQueryError from line 1187 of /srv/mediawiki/php-1.31.0-wmf.17/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?
Query: SELECT page_namespace,page_title,page_id,page_len,page_is_redirect,page_latest,page_content_model,page_lang FROM page WHERE page_id = '490884' LIMIT 1
Function: Title::newFromID
Error: 2003 Can't connect to MySQL server on '10.64.32.136' (111) (10.64.32.136)

Backtrace:
#0 /srv/mediawiki/php-1.31.0-wmf.17/includes/libs/rdbms/database/Database.php(999): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#1 /srv/mediawiki/php-1.31.0-wmf.17/includes/libs/rdbms/database/Database.php(1382): Wikimedia\Rdbms\Database->query(string, string)
#2 /srv/mediawiki/php-1.31.0-wmf.17/includes/libs/rdbms/database/Database.php(1450): Wikimedia\Rdbms\Database->select(string, array, array, string, array, array)
#3 /srv/mediawiki/php-1.31.0-wmf.17/includes/Title.php(423): Wikimedia\Rdbms\Database->selectRow(string, array, array, string)
#4 /srv/mediawiki/php-1.31.0-wmf.17/extensions/Flow/includes/Model/Workflow.php(286): Title::newFromID(integer)
#5 /srv/mediawiki/php-1.31.0-wmf.17/extensions/Flow/includes/Dump/Exporter.php(188): Flow\Model\Workflow->isDeleted()
#6 /srv/mediawiki/php-1.31.0-wmf.17/extensions/Flow/includes/Dump/Exporter.php(182): Flow\Dump\Exporter->formatWorkflow(Flow\Model\Workflow, Flow\Search\Iterators\HeaderIterator, Flow\Search\Iterators\TopicIterator)
#7 /srv/mediawiki/php-1.31.0-wmf.17/extensions/Flow/maintenance/dumpBackup.php(86): Flow\Dump\Exporter->dump(BatchRowIterator)
#8 /srv/mediawiki/php-1.31.0-wmf.17/extensions/Flow/maintenance/dumpBackup.php(59): FlowDumpBackup->dump(integer)
#9 /srv/mediawiki/php-1.31.0-wmf.17/maintenance/doMaintenance.php(94): FlowDumpBackup->execute()
#10 /srv/mediawiki/php-1.31.0-wmf.17/extensions/Flow/maintenance/dumpBackup.php(130): require_once(string)
#11 /srv/mediawiki/multiversion/MWScript.php(100): require_once(string)
#12 {main}
Error from command(s): /usr/bin/php5 /srv/mediawiki/multiversion/MWScript.php extensions/Flow/maintenance/dumpBackup.php --wiki=mediawikiwiki --current --report=1000 --output=bzip2:/mnt/dumpsdata/xmldatadumps/public/mediawikiwiki/20180201/mediawikiwiki-20180201-flow.xml.bz2.inprog
2018-02-05 08:45:41: mediawikiwiki *** exception! error dumping flow page files

Instead of dying on the spot, there should be an option for retries after a wait (both retry count and waits configurable).

Event Timeline

ArielGlenn triaged this task as Medium priority.Feb 8 2018, 2:40 PM
ArielGlenn created this task.

It's crashing in Title::newFromId(), which is an MW core thing not a Flow thing. How do the dumps in core deal with this problem?

Have a look for example at dumptextPass.php in core/maintenance; it's got a rotateDb function that it calls to clean up and try to get a new connection when things go bad. https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/master/maintenance/dumpTextPass.php