Page MenuHomePhabricator

Duplicate entry '180-4980' for key 'PRIMARY' with Cargo
Closed, ResolvedPublicBUG REPORT

Description

List of steps to reproduce (step by step, including full links if applicable):

  • Navigate to a page that uses Cargo

What happens?:

Error 1062: Duplicate entry '180-4980' for key 'PRIMARY' (db121)
Function: Wikimedia\Rdbms\Database::insert
Query: INSERT INTO `cargo_backlinks` (cbl_query_page_id,cbl_result_page_id) VALUES (180,'4980')
from /srv/mediawiki/w/includes/libs/rdbms/database/Database.php(1809)
#0 /srv/mediawiki/w/includes/libs/rdbms/database/Database.php(1793): Wikimedia\Rdbms\Database->getQueryException(string, integer, string, string)
#1 /srv/mediawiki/w/includes/libs/rdbms/database/Database.php(1768): Wikimedia\Rdbms\Database->getQueryExceptionAndLog(string, integer, string, string)
#2 /srv/mediawiki/w/includes/libs/rdbms/database/Database.php(1327): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#3 /srv/mediawiki/w/includes/libs/rdbms/database/Database.php(2540): Wikimedia\Rdbms\Database->query(string, string, integer)
#4 /srv/mediawiki/w/includes/libs/rdbms/database/Database.php(2520): Wikimedia\Rdbms\Database->doInsert(string, array, string)
#5 /srv/mediawiki/w/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->insert(string, array)
#6 /srv/mediawiki/w/includes/libs/rdbms/database/DBConnRef.php(380): Wikimedia\Rdbms\DBConnRef->__call(string, array)
#7 /srv/mediawiki/w/extensions/Cargo/includes/CargoBackLinks.php(45): Wikimedia\Rdbms\DBConnRef->insert(string, array)
#8 /srv/mediawiki/w/extensions/Cargo/includes/parserfunctions/CargoQuery.php(161): CargoBackLinks::setBackLinks(Title, array)
#9 /srv/mediawiki/w/includes/parser/Parser.php(3407): CargoQuery::run(Parser, string, string, string, string, string, string, string, string)
#10 /srv/mediawiki/w/includes/parser/Parser.php(3092): Parser->callParserFunction(PPTemplateFrame_Hash, string, array)
#11 /srv/mediawiki/w/includes/parser/PPFrame_Hash.php(273): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
#12 /srv/mediawiki/w/includes/parser/Parser.php(3281): PPFrame_Hash->expand(PPNode_Hash_Tree)
#13 /srv/mediawiki/w/includes/parser/PPFrame_Hash.php(273): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
#14 /srv/mediawiki/w/includes/parser/Parser.php(3281): PPFrame_Hash->expand(PPNode_Hash_Tree)
#15 /srv/mediawiki/w/includes/parser/PPFrame_Hash.php(273): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
#16 /srv/mediawiki/w/includes/parser/PPTemplateFrame_Hash.php(97): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#17 /srv/mediawiki/w/includes/parser/Parser.php(3278): PPTemplateFrame_Hash->cachedExpand(string, PPNode_Hash_Tree)
#18 /srv/mediawiki/w/includes/parser/PPFrame_Hash.php(273): Parser->braceSubstitution(array, PPFrame_Hash)
#19 /srv/mediawiki/w/includes/parser/Parser.php(2930): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#20 /srv/mediawiki/w/includes/parser/Parser.php(1598): Parser->replaceVariables(string)
#21 /srv/mediawiki/w/includes/parser/Parser.php(656): Parser->internalParse(string)
#22 /srv/mediawiki/w/includes/content/WikitextContent.php(327): Parser->parse(string, Title, ParserOptions, boolean, boolean, integer)
#23 /srv/mediawiki/w/includes/content/AbstractContent.php(548): WikitextContent->fillParserOutput(Title, integer, ParserOptions, boolean, ParserOutput)
#24 /srv/mediawiki/w/includes/Revision/RenderedRevision.php(263): AbstractContent->getParserOutput(Title, integer, ParserOptions, boolean)
#25 /srv/mediawiki/w/includes/Revision/RenderedRevision.php(235): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(WikitextContent, boolean)
#26 /srv/mediawiki/w/includes/Revision/RevisionRenderer.php(217): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#27 /srv/mediawiki/w/includes/Revision/RevisionRenderer.php(154): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, array)
#28 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#29 /srv/mediawiki/w/includes/Revision/RenderedRevision.php(197): call_user_func(Closure, MediaWiki\Revision\RenderedRevision, array)
#30 /srv/mediawiki/w/includes/poolcounter/PoolWorkArticleView.php(137): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#31 /srv/mediawiki/w/includes/poolcounter/PoolCounterWork.php(162): PoolWorkArticleView->doWork()
#32 /srv/mediawiki/w/includes/page/ParserOutputAccess.php(281): PoolCounterWork->execute()
#33 /srv/mediawiki/w/includes/page/Article.php(691): MediaWiki\Page\ParserOutputAccess->getParserOutput(WikiPage, ParserOptions, MediaWiki\Revision\RevisionStoreCacheRecord, integer)
#34 /srv/mediawiki/w/includes/page/Article.php(506): Article->generateContentOutput(User, ParserOptions, integer, OutputPage, array)
#35 /srv/mediawiki/w/includes/actions/ViewAction.php(80): Article->view()
#36 /srv/mediawiki/w/includes/MediaWiki.php(543): ViewAction->show()
#37 /srv/mediawiki/w/includes/MediaWiki.php(320): MediaWiki->performAction(Article, Title)
#38 /srv/mediawiki/w/includes/MediaWiki.php(930): MediaWiki->performRequest()
#39 /srv/mediawiki/w/includes/MediaWiki.php(564): MediaWiki->main()
#40 /srv/mediawiki/w/index.php(53): MediaWiki->run()
#41 /srv/mediawiki/w/index.php(46): wfIndexMain()
#42 {main}

What should have happened instead?:
Page should load as expected

Software version (if not a Wikimedia wiki), browser information, screenshots, other information, etc.:
MediaWiki 1.37.2 (8c55172)
PHP 7.4.28 (fpm-fcgi)
MariaDB 10.5.15-MariaDB-1:10.5.15+maria~bullseye-log

Downstream: https://phabricator.miraheze.org/T8985

I apologise if this isn't an upstream error but I can't seem to figure out what we could do to fix on our side and what causes this.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Change 824173 had a related patch set uploaded (by Yaron Koren; author: Yaron Koren):

[mediawiki/extensions/Cargo@master] Streamline backlinks deletion - possible fix for "Duplicate entry" issue

https://gerrit.wikimedia.org/r/824173

Change 824173 merged by jenkins-bot:

[mediawiki/extensions/Cargo@master] Streamline backlinks deletion - possible fix for "Duplicate entry" issue

https://gerrit.wikimedia.org/r/824173

Sorry about missing this problem before! I had no idea that it was this severe. (I'm guessing that it only happens on page save, not on page viewing, but still.) I just checked in this change, which may or may not fix the problem - I hope you can add in this change to your local version of Cargo, in one way or another, and that it fixes the problem.

Yaron_Koren claimed this task.

I will assume that the problem is now fixed - feel free to re-open this if not.