Page MenuHomePhabricator

Wikibase vagrant: wb_items_per_site expected to exist on main client wiki
Open, Needs TriagePublicBUG REPORT

Description

In my vagrant setup, I have wikibase enable, with wikidata.wiki.local.wmftest.net:8080 as the repo. I just uploaded a file on the main dev wiki, dev.wiki.local.wmftest.net:8080, and am now getting errors:

[297bfec02b53c280bc3e7973] /wiki/File:Example_PNG_logo.png Wikimedia\Rdbms\DBQueryError: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading or after adding a new extension?

Please see https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Upgrading and https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:How_to_debug for more information.

Error 1146: Table 'wiki.wb_items_per_site' doesn't exist (127.0.0.1)
Function: Wikibase\Lib\Store\Sql\SiteLinkTable::getItemIdForLink
Query: SELECT ips_item_id FROM `wb_items_per_site` WHERE ips_site_id = 'enwiki' AND ips_site_page = 'File:Example PNG logo.png' LIMIT 1
Backtrace:

from /vagrant/mediawiki/includes/libs/rdbms/database/Database.php(1794)
#0 /vagrant/mediawiki/includes/libs/rdbms/database/Database.php(1778): Wikimedia\Rdbms\Database->getQueryException(string, integer, string, string)
#1 /vagrant/mediawiki/includes/libs/rdbms/database/Database.php(1753): Wikimedia\Rdbms\Database->getQueryExceptionAndLog(string, integer, string, string)
#2 /vagrant/mediawiki/includes/libs/rdbms/database/Database.php(1312): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#3 /vagrant/mediawiki/includes/libs/rdbms/database/Database.php(1997): Wikimedia\Rdbms\Database->query(string, string, integer)
#4 /vagrant/mediawiki/includes/libs/rdbms/database/Database.php(2097): Wikimedia\Rdbms\Database->select(string, array, array, string, array, array)
#5 /vagrant/mediawiki/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->selectRow(string, array, array, string)
#6 /vagrant/mediawiki/includes/libs/rdbms/database/DBConnRef.php(335): Wikimedia\Rdbms\DBConnRef->__call(string, array)
#7 /vagrant/mediawiki/extensions/Wikibase/lib/includes/Store/Sql/SiteLinkTable.php(258): Wikimedia\Rdbms\DBConnRef->selectRow(string, array, array, string)
#8 /vagrant/mediawiki/extensions/Wikibase/lib/includes/Store/CachingSiteLinkLookup.php(144): Wikibase\Lib\Store\Sql\SiteLinkTable->getItemIdForLink(string, string)
#9 /vagrant/mediawiki/extensions/Wikibase/lib/includes/Store/CachingSiteLinkLookup.php(75): Wikibase\Lib\Store\CachingSiteLinkLookup->getAndCacheItemIdForLink(string, string)
#10 /vagrant/mediawiki/extensions/Wikibase/client/includes/Hooks/SiteLinksForDisplayLookup.php(76): Wikibase\Lib\Store\CachingSiteLinkLookup->getItemIdForLink(string, string)
#11 /vagrant/mediawiki/extensions/Wikibase/client/includes/Hooks/LangLinkHandler.php(266): Wikibase\Client\Hooks\SiteLinksForDisplayLookup->getSiteLinksForPageTitle(Title)
#12 /vagrant/mediawiki/extensions/Wikibase/client/includes/Hooks/LangLinkHandler.php(287): Wikibase\Client\Hooks\LangLinkHandler->getEffectiveRepoLinks(Title, ParserOutput)
#13 /vagrant/mediawiki/extensions/Wikibase/client/includes/Hooks/ParserOutputUpdateHookHandler.php(85): Wikibase\Client\Hooks\LangLinkHandler->addLinksFromRepository(Title, ParserOutput)
#14 /vagrant/mediawiki/extensions/Wikibase/client/includes/Hooks/ParserOutputUpdateHookHandler.php(67): Wikibase\Client\Hooks\ParserOutputUpdateHookHandler->doContentAlterParserOutput(Title, ParserOutput)
#15 /vagrant/mediawiki/includes/HookContainer/HookContainer.php(160): Wikibase\Client\Hooks\ParserOutputUpdateHookHandler->onContentAlterParserOutput(WikitextContent, Title, ParserOutput)
#16 /vagrant/mediawiki/includes/HookContainer/HookRunner.php(1207): MediaWiki\HookContainer\HookContainer->run(string, array)
#17 /vagrant/mediawiki/includes/content/AbstractContent.php(549): MediaWiki\HookContainer\HookRunner->onContentAlterParserOutput(WikitextContent, Title, ParserOutput)
#18 /vagrant/mediawiki/includes/Revision/RenderedRevision.php(266): AbstractContent->getParserOutput(Title, integer, ParserOptions, boolean)
#19 /vagrant/mediawiki/includes/Revision/RenderedRevision.php(235): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(WikitextContent, boolean)
#20 /vagrant/mediawiki/includes/Revision/RevisionRenderer.php(217): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#21 /vagrant/mediawiki/includes/Revision/RevisionRenderer.php(154): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, array)
#22 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#23 /vagrant/mediawiki/includes/Revision/RenderedRevision.php(197): call_user_func(Closure, MediaWiki\Revision\RenderedRevision, array)
#24 /vagrant/mediawiki/includes/poolcounter/PoolWorkArticleView.php(137): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#25 /vagrant/mediawiki/includes/poolcounter/PoolCounterWork.php(162): PoolWorkArticleView->doWork()
#26 /vagrant/mediawiki/includes/page/ParserOutputAccess.php(281): PoolCounterWork->execute()
#27 /vagrant/mediawiki/includes/page/Article.php(688): MediaWiki\Page\ParserOutputAccess->getParserOutput(WikiFilePage, ParserOptions, MediaWiki\Revision\RevisionStoreCacheRecord, integer)
#28 /vagrant/mediawiki/includes/page/Article.php(500): Article->generateContentOutput(User, ParserOptions, integer, OutputPage, array)
#29 /vagrant/mediawiki/includes/page/ImagePage.php(154): Article->view()
#30 /vagrant/mediawiki/includes/actions/ViewAction.php(74): ImagePage->view()
#31 /vagrant/mediawiki/includes/MediaWiki.php(538): ViewAction->show()
#32 /vagrant/mediawiki/includes/MediaWiki.php(320): MediaWiki->performAction(ImagePage, Title)
#33 /vagrant/mediawiki/includes/MediaWiki.php(925): MediaWiki->performRequest()
#34 /vagrant/mediawiki/includes/MediaWiki.php(559): MediaWiki->main()
#35 /vagrant/mediawiki/index.php(53): MediaWiki->run()
#36 /vagrant/mediawiki/index.php(46): wfIndexMain()
#37 /var/www/w/index.php(5): require(string)
#38 {main}

I ran update.php for both this main wiki (wiki) and for the wikibase wiki (wikidatawiki) but that didn't fix it - I'm using core and wikibase master. It seems to me that this code is expecting the wb_items_per_site table to exist for client wikis too, but there is no schema update to create that table for client wikis, only for the repo.

This is different from T231534 and T245845 in that those errors both deal with the table missing from wikidatawiki, not from a client wiki.

This error (with a different ips_site_page) is now appearing on all page views, not just the file uploaded, so I'm not sure if its related to the upload, but I didn't see it before

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
DannyS712 changed the subtype of this task from "Task" to "Bug Report".

Locally solved by running mwscript sql.php wiki extensions/Wikibase/repo/sql/mysql/wb_items_per_site.sql to create the table

Michael subscribed.

This sounds like a configuration error. The code accesses the database on the repository wiki, that is, wikidatawiki.