Page MenuHomePhabricator

EntityAccessor::getEntity should fail gracefully on double redirects
Closed, ResolvedPublic

Description

Example exception (slightly messed because logging is messed right now):

2015-08-06 21:40:47 mw1023 wikidatawiki exception ERROR: [0a95aa13] /wiki/User_talk:ProteinBoxBot   Wikibase\Lib\Store\UnresolvedRedirectException from line 87 of /srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/lib/includes/store/sql/WikiPageEntityRevisionLookup.php: Unresolved redirect to Q16428906 {"exception":"[Exception Wikibase\\Lib\\Store\\UnresolvedRedirectException] (/srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/lib/includes/store/sql/WikiPageEntityRevisionLookup.php:87) Unresolved redirect to Q16428906
[stacktrace]
#0 /srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/lib/includes/store/CachingEntityRevisionLookup.php(148): Wikibase\\Lib\\Store\\WikiPageEntityRevisionLookup->getEntityRevision(Wikibase\\DataModel\\Entity\\ItemId, string)
#1 /srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/lib/includes/store/CachingEntityRevisionLookup.php(131): Wikibase\\Lib\\Store\\CachingEntityRevisionLookup->fetchEntityRevision(Wikibase\\DataModel\\Entity\\ItemId, string)
#2 /srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/lib/includes/store/CachingEntityRevisionLookup.php(148): Wikibase\\Lib\\Store\\CachingEntityRevisionLookup->getEntityRevision(Wikibase\\DataModel\\Entity\\ItemId, string)
#3 /srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/lib/includes/store/CachingEntityRevisionLookup.php(131): Wikibase\\Lib\\Store\\CachingEntityRevisionLookup->fetchEntityRevision(Wikibase\\DataModel\\Entity\\ItemId, string)
#4 /srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/lib/includes/store/RevisionBasedEntityLookup.php(41): Wikibase\\Lib\\Store\\CachingEntityRevisionLookup->getEntityRevision(Wikibase\\DataModel\\Entity\\ItemId)
#5 [internal function]: Wikibase\\Lib\\Store\\RevisionBasedEntityLookup->getEntity(Wikibase\\DataModel\\Entity\\ItemId)
#6 /srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/lib/includes/store/EntityRedirectResolvingDecorator.php(79): call_user_func_array(array, array)
#7 /srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/lib/includes/store/RedirectResolvingEntityLookup.php(50): Wikibase\\Lib\\Store\\EntityRedirectResolvingDecorator->__call(string, array)
#8 /srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/client/includes/DataAccess/Scribunto/EntityAccessor.php(128): Wikibase\\Lib\\Store\\RedirectResolvingEntityLookup->getEntity(Wikibase\\DataModel\\Entity\\ItemId)
#9 /srv/mediawiki/php-1.26wmf17/extensions/Wikidata/extensions/Wikibase/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php(260): Wikibase\\Client\\DataAccess\\Scribunto\\EntityAccessor->getEntity(string)
#10 /srv/mediawiki/php-1.26wmf17/extensions/Scribunto/engines/LuaSandbox/Engine.php(384): Wikibase\\Client\\DataAccess\\Scribunto\\Scribunto_LuaWikibaseLibrary->getEntity(string)
#11 [internal function]: Scribunto_LuaSandboxCallback->__call(string, array)
#12 /srv/mediawiki/php-1.26wmf17/extensions/Scribunto/engines/LuaSandbox/Engine.php(297): LuaSandboxFunction->call(LuaSandboxFunction)
#13 /srv/mediawiki/php-1.26wmf17/extensions/Scribunto/engines/LuaCommon/LuaCommon.php(257): Scribunto_LuaSandboxInterpreter->callFunction(LuaSandboxFunction, LuaSandboxFunction)
#14 /srv/mediawiki/php-1.26wmf17/extensions/Scribunto/engines/LuaCommon/LuaCommon.php(873): Scribunto_LuaEngine->executeFunctionChunk(LuaSandboxFunction, PPTemplateFrame_Hash)
#15 /srv/mediawiki/php-1.26wmf17/extensions/Scribunto/common/Hooks.php(116): Scribunto_LuaModule->invoke(string, PPTemplateFrame_Hash)
#16 /srv/mediawiki/php-1.26wmf17/includes/parser/Parser.php(3774): ScribuntoHooks::invokeHook(Parser, PPTemplateFrame_Hash, array)
#17 /srv/mediawiki/php-1.26wmf17/includes/parser/Parser.php(3508): Parser->callParserFunction(PPTemplateFrame_Hash, string, array)
#18 /srv/mediawiki/php-1.26wmf17/includes/parser/Preprocessor_Hash.php(1100): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
#19 /srv/mediawiki/php-1.26wmf17/includes/parser/Parser.php(3650): PPFrame_Hash->expand(PPNode_Hash_Tree)
#20 /srv/mediawiki/php-1.26wmf17/includes/parser/Preprocessor_Hash.php(1100): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
#21 /srv/mediawiki/php-1.26wmf17/extensions/ParserFunctions/ParserFunctions_body.php(120): PPFrame_Hash->expand(PPNode_Hash_Tree)
#22 /srv/mediawiki/php-1.26wmf17/includes/parser/Parser.php(3774): ExtParserFunctions::ifeqObj(Parser, PPTemplateFrame_Hash, array)
#23 /srv/mediawiki/php-1.26wmf17/includes/parser/Parser.php(3508): Parser->callParserFunction(PPTemplateFrame_Hash, string, array)
#24 /srv/mediawiki/php-1.26wmf17/includes/parser/Preprocessor_Hash.php(1100): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
#25 /srv/mediawiki/php-1.26wmf17/includes/parser/Parser.php(3650): PPFrame_Hash->expand(PPNode_Hash_Tree)
#26 /srv/mediawiki/php-1.26wmf17/includes/parser/Preprocessor_Hash.php(1100): Parser->braceSubstitution(array, PPFrame_Hash)
#27 /srv/mediawiki/php-1.26wmf17/includes/parser/Parser.php(3327): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#28 /srv/mediawiki/php-1.26wmf17/includes/parser/Parser.php(1231): Parser->replaceVariables(string)
#29 /srv/mediawiki/php-1.26wmf17/includes/parser/Parser.php(434): Parser->internalParse(string)
#30 /srv/mediawiki/php-1.26wmf17/includes/content/WikitextContent.php(331): Parser->parse(string, Title, ParserOptions, boolean, boolean, integer)
#31 /srv/mediawiki/php-1.26wmf17/includes/content/AbstractContent.php(497): WikitextContent->fillParserOutput(Title, integer, ParserOptions, boolean, ParserOutput)
#32 /srv/mediawiki/php-1.26wmf17/includes/poolcounter/PoolWorkArticleView.php(140): AbstractContent->getParserOutput(Title, integer, ParserOptions)
#33 /srv/mediawiki/php-1.26wmf17/includes/poolcounter/PoolCounterWork.php(123): PoolWorkArticleView->doWork()
#34 /srv/mediawiki/php-1.26wmf17/includes/page/Article.php(676): PoolCounterWork->execute()
#35 /srv/mediawiki/php-1.26wmf17/includes/actions/ViewAction.php(44): Article->view()
#36 /srv/mediawiki/php-1.26wmf17/includes/MediaWiki.php(456): ViewAction->show()
#37 /srv/mediawiki/php-1.26wmf17/includes/MediaWiki.php(255): MediaWiki->performAction(Article, Title)
#38 /srv/mediawiki/php-1.26wmf17/includes/MediaWiki.php(677): MediaWiki->performRequest()
#39 /srv/mediawiki/php-1.26wmf17/includes/MediaWiki.php(474): MediaWiki->main()
#40 /srv/mediawiki/php-1.26wmf17/index.php(41): MediaWiki->run()
#41 /srv/mediawiki/w/index.php(3): include(string)
#42 {main}
"}

Event Timeline

hoo raised the priority of this task from to High.
hoo updated the task description. (Show Details)
hoo added subscribers: hoo, daniel, aude and 2 others.

Change 229992 had a related patch set uploaded (by Hoo man):
Fail gracefully when hitting double redirects in client DataAccess

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

Change 229992 merged by jenkins-bot:
Fail gracefully when hitting double redirects in client DataAccess

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

Change 230155 had a related patch set uploaded (by Hoo man):
Fail gracefully when hitting double redirects in client DataAccess

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

Change 230155 merged by jenkins-bot:
Fail gracefully when hitting double redirects in client DataAccess

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