Page MenuHomePhabricator

importDump.php doesn't rollback atomic sections properly: Database.php: No atomic section is open (got MediaWiki\Revision\RevisionStore::insertRevisionOn)
Open, Needs TriagePublic

Description

I am running importDump.php to import Wiktionary into a local MediaWiki instance (XAMPP on Windows 10).

This error occurs when the importer reaches the attached example.xml page:

C:\xampp\htdocs\mediawiki-134git\maintenance>php importDump.php --conf ../LocalSettings.php --username-prefix="" C:\example.xml

Wikimedia\Rdbms\DBUnexpectedError from line 3880 of C:\xampp\htdocs\mediawiki-134git\includes\libs\rdbms\database\Database.php: No atomic section is open (got MediaWiki\Revision\RevisionStore::insertRevisionOn)
#0 C:\xampp\htdocs\mediawiki-134git\includes\libs\rdbms\database\Database.php(3968): Wikimedia\Rdbms\Database->cancelAtomic('MediaWiki\\Revis...', Object(Wikimedia\Rdbms\AtomicSectionIdentifier))
#1 C:\xampp\htdocs\mediawiki-134git\includes\libs\rdbms\database\DBConnRef.php(68): Wikimedia\Rdbms\Database->doAtomicSection('MediaWiki\\Revis...', Object(Closure))
#2 C:\xampp\htdocs\mediawiki-134git\includes\libs\rdbms\database\DBConnRef.php(635): Wikimedia\Rdbms\DBConnRef->__call('doAtomicSection', Array)
#3 C:\xampp\htdocs\mediawiki-134git\includes\Revision\RevisionStore.php(498): Wikimedia\Rdbms\DBConnRef->doAtomicSection('MediaWiki\\Revis...', Object(Closure))
#4 C:\xampp\htdocs\mediawiki-134git\includes\Revision.php(968): MediaWiki\Revision\RevisionStore->insertRevisionOn(Object(MediaWiki\Revision\MutableRevisionRecord), Object(Wikimedia\Rdbms\DBConnRef))
#5 C:\xampp\htdocs\mediawiki-134git\includes\import\ImportableOldRevisionImporter.php(129): Revision->insertOn(Object(Wikimedia\Rdbms\DBConnRef))
#6 C:\xampp\htdocs\mediawiki-134git\includes\import\WikiRevision.php(616): ImportableOldRevisionImporter->import(Object(WikiRevision))
#7 C:\xampp\htdocs\mediawiki-134git\includes\import\WikiImporter.php(366): WikiRevision->importOldRevision()
#8 C:\xampp\htdocs\mediawiki-134git\maintenance\importDump.php(209): WikiImporter->importRevision(Object(WikiRevision))
#9 C:\xampp\htdocs\mediawiki-134git\includes\import\WikiImporter.php(501): BackupReader->handleRevision(Object(WikiRevision), Object(WikiImporter))
#10 C:\xampp\htdocs\mediawiki-134git\includes\import\WikiImporter.php(941): WikiImporter->revisionCallback(Object(WikiRevision))
#11 C:\xampp\htdocs\mediawiki-134git\includes\import\WikiImporter.php(860): WikiImporter->processRevision(Array, Array)
#12 C:\xampp\htdocs\mediawiki-134git\includes\import\WikiImporter.php(802): WikiImporter->handleRevision(Array)
#13 C:\xampp\htdocs\mediawiki-134git\includes\import\WikiImporter.php(606): WikiImporter->handlePage()
#14 C:\xampp\htdocs\mediawiki-134git\maintenance\importDump.php(359): WikiImporter->doImport()
#15 C:\xampp\htdocs\mediawiki-134git\maintenance\importDump.php(292): BackupReader->importFromHandle(Resource id #160)
#16 C:\xampp\htdocs\mediawiki-134git\maintenance\importDump.php(127): BackupReader->importFromFile('C:\\Users\\Brenda...')
#17 C:\xampp\htdocs\mediawiki-134git\maintenance\doMaintenance.php(99): BackupReader->execute()
#18 C:\xampp\htdocs\mediawiki-134git\maintenance\importDump.php(364): require_once('C:\\xampp\\htdocs...')
#19 {main}

Event Timeline

Bawolff renamed this task from Database.php: No atomic section is open (got MediaWiki\Revision\RevisionStore::insertRevisionOn) to importDump.php doesn't rollback atomic sections properly: Database.php: No atomic section is open (got MediaWiki\Revision\RevisionStore::insertRevisionOn).Jan 31 2020, 9:50 PM

@828bmartin: I don't see how this is related to Scribunto?

@Aklapper I only tagged it as Scribunto because that's the Module page that causes the import to fail.

I get the same error while importing or when i just paste the content from the failed pages from Wikipedia into my 1.35.0.
Example Template:Attached_KML/U.S._Route_10

Original exception: [bd7a94c2c64c49816a0eb64e] /index.php?title=Template:Attached_KML/U.S._Route_10&action=submit Wikimedia\Rdbms\DBUnexpectedError from line 4375 of X:\wikipedia\includes\libs\rdbms\database\Database.php: No atomic section is open (got MediaWiki\Revision\RevisionStore::insertRevisionOn)
Backtrace:
#0 X:\wikipedia\includes\libs\rdbms\database\Database.php(4463): Wikimedia\Rdbms\Database->cancelAtomic(string, Wikimedia\Rdbms\AtomicSectionIdentifier)
#1 X:\wikipedia\includes\libs\rdbms\database\DBConnRef.php(68): Wikimedia\Rdbms\Database->doAtomicSection(string, Closure)
#2 X:\wikipedia\includes\libs\rdbms\database\DBConnRef.php(641): Wikimedia\Rdbms\DBConnRef->__call(string, array)
#3 X:\wikipedia\includes\Revision\RevisionStore.php(427): Wikimedia\Rdbms\DBConnRef->doAtomicSection(string, Closure)
#4 X:\wikipedia\includes\Storage\PageUpdater.php(1228): MediaWiki\Revision\RevisionStore->insertRevisionOn(MediaWiki\Revision\MutableRevisionRecord, Wikimedia\Rdbms\DBConnRef)
#5 X:\wikipedia\includes\Storage\PageUpdater.php(796): MediaWiki\Storage\PageUpdater->doCreate(CommentStoreComment, User, integer)
#6 X:\wikipedia\includes\page\WikiPage.php(2015): MediaWiki\Storage\PageUpdater->saveRevision(CommentStoreComment, integer)
#7 X:\wikipedia\includes\EditPage.php(2456): WikiPage->doEditContent(WikitextContent, CommentStoreComment, integer, boolean, User, string, array, integer)
#8 X:\wikipedia\includes\EditPage.php(1723): EditPage->internalAttemptSave(array, boolean)
#9 X:\wikipedia\includes\EditPage.php(680): EditPage->attemptSave(array)
#10 X:\wikipedia\includes\actions\EditAction.php(71): EditPage->edit()
#11 X:\wikipedia\includes\actions\SubmitAction.php(38): EditAction->show()
#12 X:\wikipedia\includes\MediaWiki.php(527): SubmitAction->show()
#13 X:\wikipedia\includes\MediaWiki.php(313): MediaWiki->performAction(Article, Title)
#14 X:\wikipedia\includes\MediaWiki.php(940): MediaWiki->performRequest()
#15 X:\wikipedia\includes\MediaWiki.php(543): MediaWiki->main()
#16 X:\wikipedia\index.php(53): MediaWiki->run()
#17 X:\wikipedia\index.php(46): wfIndexMain()
#18 {main}

The actual error was:

MySQL server has gone away (127.0.0.1)

in the insert into text due to packet size limit being to log in mysql for this much content on a single page. So i set it to 16M in my.ini and it worked afterwards. Manually and for the import

max_allowed_packet=16M