Page MenuHomePhabricator

[PageImages] SelectQueryBuilder::fetchFieldValues expects the query to have only one field
Closed, ResolvedPublicBUG REPORT

Description

Steps to replicate the issue:

What happens?:

[ZUqOmKmQZIIM6Ot8H6sxxgAAAAc] /wiki/Main_Page UnexpectedValueException: Wikimedia\Rdbms\SelectQueryBuilder::fetchFieldValues expects the query to have only one field

Backtrace:

from /srv/mediawiki/php-master/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php(739)
#0 /srv/mediawiki/php-master/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(494): Wikimedia\Rdbms\SelectQueryBuilder->fetchFieldValues()
#1 /srv/mediawiki/php-master/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(441): PageImages\Hooks\ParserFileProcessingHookHandlers->getDbDenylist(boolean, string)
#2 /srv/mediawiki/php-master/includes/libs/objectcache/wancache/WANObjectCache.php(1726): PageImages\Hooks\ParserFileProcessingHookHandlers->PageImages\Hooks\{closure}(boolean, integer, array, NULL, array)
#3 /srv/mediawiki/php-master/includes/libs/objectcache/wancache/WANObjectCache.php(1556): WANObjectCache->fetchOrRegenerate(string, integer, Closure, array, array)
#4 /srv/mediawiki/php-master/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(458): WANObjectCache->getWithSetCallback(string, integer, Closure)
#5 /srv/mediawiki/php-master/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(331): PageImages\Hooks\ParserFileProcessingHookHandlers->getDenylist()
#6 /srv/mediawiki/php-master/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(215): PageImages\Hooks\ParserFileProcessingHookHandlers->getScore(PageImages\PageImageCandidate, integer)
#7 /srv/mediawiki/php-master/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(172): PageImages\Hooks\ParserFileProcessingHookHandlers->findBestImages(array)
#8 /srv/mediawiki/php-master/includes/HookContainer/HookContainer.php(161): PageImages\Hooks\ParserFileProcessingHookHandlers->onParserAfterTidy(Parser, string)
#9 /srv/mediawiki/php-master/includes/HookContainer/HookRunner.php(2903): MediaWiki\HookContainer\HookContainer->run(string, array)
#10 /srv/mediawiki/php-master/includes/parser/Parser.php(1690): MediaWiki\HookContainer\HookRunner->onParserAfterTidy(Parser, string)
#11 /srv/mediawiki/php-master/includes/parser/Parser.php(654): Parser->internalParseHalfParsed(string, boolean, boolean)
#12 /srv/mediawiki/php-master/includes/content/WikitextContentHandler.php(420): Parser->parse(string, MediaWiki\Title\Title, ParserOptions, boolean, boolean, integer)
#13 /srv/mediawiki/php-master/includes/content/ContentHandler.php(1759): WikitextContentHandler->fillParserOutput(WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, ParserOutput)
#14 /srv/mediawiki/php-master/includes/content/Renderer/ContentRenderer.php(47): ContentHandler->getParserOutput(WikitextContent, MediaWiki\Content\Renderer\ContentParseParams)
#15 /srv/mediawiki/php-master/includes/Revision/RenderedRevision.php(260): MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(WikitextContent, MediaWiki\Title\Title, integer, ParserOptions, boolean)
#16 /srv/mediawiki/php-master/includes/Revision/RenderedRevision.php(232): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(WikitextContent, boolean)
#17 /srv/mediawiki/php-master/includes/Revision/RevisionRenderer.php(223): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#18 /srv/mediawiki/php-master/includes/Revision/RevisionRenderer.php(164): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, array)
#19 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#20 /srv/mediawiki/php-master/includes/Revision/RenderedRevision.php(199): call_user_func(Closure, MediaWiki\Revision\RenderedRevision, array)
#21 /srv/mediawiki/php-master/includes/poolcounter/PoolWorkArticleView.php(84): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#22 /srv/mediawiki/php-master/includes/poolcounter/PoolWorkArticleViewCurrent.php(104): PoolWorkArticleView->renderRevision()
#23 /srv/mediawiki/php-master/includes/poolcounter/PoolCounterWork.php(167): PoolWorkArticleViewCurrent->doWork()
#24 /srv/mediawiki/php-master/includes/page/ParserOutputAccess.php(304): PoolCounterWork->execute()
#25 /srv/mediawiki/php-master/includes/page/Article.php(756): MediaWiki\Page\ParserOutputAccess->getParserOutput(WikiPage, ParserOptions, MediaWiki\Revision\RevisionStoreCacheRecord, integer)
#26 /srv/mediawiki/php-master/includes/page/Article.php(559): Article->generateContentOutput(MediaWiki\User\User, ParserOptions, integer, MediaWiki\Output\OutputPage, array)
#27 /srv/mediawiki/php-master/includes/actions/ViewAction.php(78): Article->view()
#28 /srv/mediawiki/php-master/includes/MediaWiki.php(583): ViewAction->show()
#29 /srv/mediawiki/php-master/includes/MediaWiki.php(363): MediaWiki->performAction(Article, MediaWiki\Title\Title)
#30 /srv/mediawiki/php-master/includes/MediaWiki.php(960): MediaWiki->performRequest()
#31 /srv/mediawiki/php-master/includes/MediaWiki.php(613): MediaWiki->main()
#32 /srv/mediawiki/php-master/index.php(50): MediaWiki->run()
#33 /srv/mediawiki/php-master/index.php(46): wfIndexMain()
#34 /srv/mediawiki/w/index.php(3): require(string)
#35 {main}

Event Timeline

Aklapper renamed this task from [commons-beta] main page displays Internal error to [commons-beta] main page displays Internal error due to SelectQueryBuilder::fetchFieldValues.Nov 8 2023, 8:39 AM
Aklapper added a project: PageImages.

Big spike showing this error after deploying 1.42.0-wmf.4 to group1: https://logstash.wikimedia.org/goto/fd6513e08755341b4aa3d43c16dd0a81

Multiple code paths seem affected. For example:

rom /srv/mediawiki/php-1.42.0-wmf.4/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php(739)
#0 /srv/mediawiki/php-1.42.0-wmf.4/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(494): Wikimedia\Rdbms\SelectQueryBuilder->fetchFieldValues()
#1 /srv/mediawiki/php-1.42.0-wmf.4/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(441): PageImages\Hooks\ParserFileProcessingHookHandlers->getDbDenylist(boolean, string)
#2 /srv/mediawiki/php-1.42.0-wmf.4/includes/libs/objectcache/wancache/WANObjectCache.php(1726): PageImages\Hooks\ParserFileProcessingHookHandlers->PageImages\Hooks\{closure}(boolean, integer, array, NULL, array)
#3 /srv/mediawiki/php-1.42.0-wmf.4/includes/libs/objectcache/wancache/WANObjectCache.php(1556): WANObjectCache->fetchOrRegenerate(string, integer, Closure, array, array)
#4 /srv/mediawiki/php-1.42.0-wmf.4/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(458): WANObjectCache->getWithSetCallback(string, integer, Closure)
#5 /srv/mediawiki/php-1.42.0-wmf.4/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(331): PageImages\Hooks\ParserFileProcessingHookHandlers->getDenylist()
#6 /srv/mediawiki/php-1.42.0-wmf.4/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(215): PageImages\Hooks\ParserFileProcessingHookHandlers->getScore(PageImages\PageImageCandidate, integer)
#7 /srv/mediawiki/php-1.42.0-wmf.4/extensions/PageImages/includes/Hooks/ParserFileProcessingHookHandlers.php(172): PageImages\Hooks\ParserFileProcessingHookHandlers->findBestImages(array)
#8 /srv/mediawiki/php-1.42.0-wmf.4/includes/HookContainer/HookContainer.php(161): PageImages\Hooks\ParserFileProcessingHookHandlers->onParserAfterTidy(Parser, string)
#9 /srv/mediawiki/php-1.42.0-wmf.4/includes/HookContainer/HookRunner.php(2903): MediaWiki\HookContainer\HookContainer->run(string, array)
#10 /srv/mediawiki/php-1.42.0-wmf.4/includes/parser/Parser.php(1690): MediaWiki\HookContainer\HookRunner->onParserAfterTidy(Parser, string)
#11 /srv/mediawiki/php-1.42.0-wmf.4/includes/parser/Parser.php(654): Parser->internalParseHalfParsed(string, boolean, boolean)
#12 /srv/mediawiki/php-1.42.0-wmf.4/includes/Output/OutputPage.php(2538): Parser->parse(string, MediaWiki\Title\Title, ParserOptions, boolean, boolean, NULL)
#13 /srv/mediawiki/php-1.42.0-wmf.4/includes/Output/OutputPage.php(2126): MediaWiki\Output\OutputPage->parseInternal(string, MediaWiki\Title\Title, boolean, boolean)
#14 /srv/mediawiki/php-1.42.0-wmf.4/includes/Output/OutputPage.php(2059): MediaWiki\Output\OutputPage->addWikiTextTitleInternal(string, MediaWiki\Title\Title, boolean, boolean)
#15 /srv/mediawiki/php-1.42.0-wmf.4/includes/page/Article.php(1578): MediaWiki\Output\OutputPage->addWikiTextAsInterface(string)
#16 /srv/mediawiki/php-1.42.0-wmf.4/includes/page/Article.php(647): Article->showMissingArticle()
#17 /srv/mediawiki/php-1.42.0-wmf.4/includes/page/Article.php(559): Article->generateContentOutput(MediaWiki\User\User, ParserOptions, integer, MediaWiki\Output\OutputPage, array)
#18 /srv/mediawiki/php-1.42.0-wmf.4/includes/actions/ViewAction.php(78): Article->view()
#19 /srv/mediawiki/php-1.42.0-wmf.4/includes/MediaWiki.php(583): ViewAction->show()
#20 /srv/mediawiki/php-1.42.0-wmf.4/includes/MediaWiki.php(363): MediaWiki->performAction(Article, MediaWiki\Title\Title)
#21 /srv/mediawiki/php-1.42.0-wmf.4/includes/MediaWiki.php(960): MediaWiki->performRequest()
#22 /srv/mediawiki/php-1.42.0-wmf.4/includes/MediaWiki.php(613): MediaWiki->main()
#23 /srv/mediawiki/php-1.42.0-wmf.4/index.php(50): MediaWiki->run()
#24 /srv/mediawiki/php-1.42.0-wmf.4/index.php(46): wfIndexMain()
#25 /srv/mediawiki/w/index.php(3): require(string)
jnuche triaged this task as Unbreak Now! priority.Nov 8 2023, 9:43 AM
jnuche renamed this task from [commons-beta] main page displays Internal error due to SelectQueryBuilder::fetchFieldValues to [PageImages] SelectQueryBuilder::fetchFieldValues expects the query to have only one field.Nov 8 2023, 9:51 AM

Change 972733 had a related patch set uploaded (by Ladsgroup; author: Amir Sarabadani):

[mediawiki/extensions/PageImages@master] Only take one field in fetchFieldValues

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

Change 972709 had a related patch set uploaded (by Ladsgroup; author: Amir Sarabadani):

[mediawiki/extensions/PageImages@wmf/1.42.0-wmf.4] Only take one field in fetchFieldValues

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

Change 972709 merged by jenkins-bot:

[mediawiki/extensions/PageImages@wmf/1.42.0-wmf.4] Only take one field in fetchFieldValues

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

Mentioned in SAL (#wikimedia-operations) [2023-11-08T11:42:02Z] <ladsgroup@deploy2002> Started scap: Backport for [[gerrit:972709|Only take one field in fetchFieldValues (T350726)]]

Mentioned in SAL (#wikimedia-operations) [2023-11-08T11:43:23Z] <ladsgroup@deploy2002> ladsgroup: Backport for [[gerrit:972709|Only take one field in fetchFieldValues (T350726)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Change 972733 merged by jenkins-bot:

[mediawiki/extensions/PageImages@master] Only take one field in fetchFieldValues

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

Mentioned in SAL (#wikimedia-operations) [2023-11-08T11:49:02Z] <ladsgroup@deploy2002> Finished scap: Backport for [[gerrit:972709|Only take one field in fetchFieldValues (T350726)]] (duration: 07m 00s)