Page MenuHomePhabricator

Call to undefined method ForeignDBFile::getExtendedMetadata()
Closed, ResolvedPublicBUG REPORT

Description

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

What happens?:

[Ypah1Q40VO61BVhqjguoQwAAAFI] /w/index.php?title=Story:Cat_cute&diff=546114&oldid=546010 Error: Call to undefined method ForeignDBFile::getExtendedMetadata()

Backtrace:

from /srv/mediawiki/php-master/extensions/Wikistories/includes/StoryRenderer.php(108)
#0 /srv/mediawiki/php-master/extensions/Wikistories/includes/StoryRenderer.php(71): MediaWiki\Extension\Wikistories\StoryRenderer->getAttribution(array, string)
#1 [internal function]: MediaWiki\Extension\Wikistories\StoryRenderer->MediaWiki\Extension\Wikistories\{closure}(stdClass)
#2 /srv/mediawiki/php-master/extensions/Wikistories/includes/StoryRenderer.php(73): array_map(Closure, array)
#3 /srv/mediawiki/php-master/extensions/Wikistories/includes/StoryRenderer.php(27): MediaWiki\Extension\Wikistories\StoryRenderer->getStoryForViewer(MediaWiki\Extension\Wikistories\StoryContent, integer, string)
#4 /srv/mediawiki/php-master/extensions/Wikistories/includes/StoryContentHandler.php(103): MediaWiki\Extension\Wikistories\StoryRenderer->renderNoJS(MediaWiki\Extension\Wikistories\StoryContent)
#5 /srv/mediawiki/php-master/includes/content/ContentHandler.php(1716): MediaWiki\Extension\Wikistories\StoryContentHandler->fillParserOutput(MediaWiki\Extension\Wikistories\StoryContent, MediaWiki\Content\Renderer\ContentParseParams, ParserOutput)
#6 /srv/mediawiki/php-master/includes/content/Renderer/ContentRenderer.php(47): ContentHandler->getParserOutput(MediaWiki\Extension\Wikistories\StoryContent, MediaWiki\Content\Renderer\ContentParseParams)
#7 /srv/mediawiki/php-master/includes/Revision/RenderedRevision.php(270): MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(MediaWiki\Extension\Wikistories\StoryContent, Title, integer, ParserOptions, boolean)
#8 /srv/mediawiki/php-master/includes/Revision/RenderedRevision.php(237): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(MediaWiki\Extension\Wikistories\StoryContent, boolean)
#9 /srv/mediawiki/php-master/includes/Revision/RevisionRenderer.php(221): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#10 /srv/mediawiki/php-master/includes/Revision/RevisionRenderer.php(158): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, array)
#11 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#12 /srv/mediawiki/php-master/includes/Revision/RenderedRevision.php(199): call_user_func(Closure, MediaWiki\Revision\RenderedRevision, array)
#13 /srv/mediawiki/php-master/includes/poolcounter/PoolWorkArticleView.php(91): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#14 /srv/mediawiki/php-master/includes/poolcounter/PoolWorkArticleViewOld.php(66): PoolWorkArticleView->renderRevision()
#15 /srv/mediawiki/php-master/includes/poolcounter/PoolCounterWork.php(162): PoolWorkArticleViewOld->doWork()
#16 /srv/mediawiki/php-master/includes/page/ParserOutputAccess.php(299): PoolCounterWork->execute()
#17 /srv/mediawiki/php-master/includes/page/WikiPage.php(1294): MediaWiki\Page\ParserOutputAccess->getParserOutput(WikiPage, ParserOptions, MediaWiki\Revision\RevisionStoreRecord, integer)
#18 /srv/mediawiki/php-master/includes/diff/DifferenceEngine.php(1058): WikiPage->getParserOutput(ParserOptions, integer)
#19 /srv/mediawiki/php-master/includes/diff/DifferenceEngine.php(1015): DifferenceEngine->getParserOutput(WikiPage, MediaWiki\Revision\RevisionStoreRecord)
#20 /srv/mediawiki/php-master/includes/diff/DifferenceEngine.php(846): DifferenceEngine->renderNewRevision()
#21 /srv/mediawiki/php-master/includes/page/Article.php(894): DifferenceEngine->showDiffPage(boolean)
#22 /srv/mediawiki/php-master/includes/page/Article.php(458): Article->showDiffPage()
#23 /srv/mediawiki/php-master/includes/actions/ViewAction.php(78): Article->view()
#24 /srv/mediawiki/php-master/includes/MediaWiki.php(550): ViewAction->show()
#25 /srv/mediawiki/php-master/includes/MediaWiki.php(322): MediaWiki->performAction(Article, Title)
#26 /srv/mediawiki/php-master/includes/MediaWiki.php(916): MediaWiki->performRequest()
#27 /srv/mediawiki/php-master/includes/MediaWiki.php(570): MediaWiki->main()
#28 /srv/mediawiki/php-master/index.php(50): MediaWiki->run()
#29 /srv/mediawiki/php-master/index.php(46): wfIndexMain()
#30 /srv/mediawiki/w/index.php(3): require(string)
#31 {main}

What should have happened instead?:
Show diff

Maybe related to T307564, maybe not.

Event Timeline

SBisson triaged this task as Medium priority.

Change 803598 had a related patch set uploaded (by Sbisson; author: Sbisson):

[mediawiki/extensions/Wikistories@master] Guard against unexpected File subclass

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

Change 803598 merged by jenkins-bot:

[mediawiki/extensions/Wikistories@master] Use FormatMetadata to get metadata regardless of File subclass

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

EUdoh-WMF subscribed.

Testing

This shows up correctly.

image.png (996×2 px, 267 KB)