Manual localisation cache rebuild is failing with:
Query: INSERT INTO `bw_l10n_cache` ...... Error: 1062 Duplicate entry 'mr-messages:apihelp-query+allusers-example-y' for key 'PRIMARY' (127.0.0.1:3312)
Language codes seen: mr and tl. It shouldn't even be using the database!
While trying to access the wiki from web I see:
Warning: dba_open(/l10n_cache-en.cdb.tmp.459236192): failed to open stream: Permission denied in /www/dev.translatewiki.net/docroot/w/vendor/wikimedia/cdb/src/Writer/DBA.php on line 39 [20897a16ed55e7907b3edc15] /w/i.php?title=Special:ContentTranslation&page=Moshing&from=en&to=es&targettitle=Moshing&debug=true MWException from line 98 of /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LCStoreCDB.php: Unable to open CDB file for write "/l10n_cache-en.cdb" Backtrace: #0 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(1015): LCStoreCDB->startWrite(string) #1 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(457): LocalisationCache->recache(string) #2 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(331): LocalisationCache->initLanguage(string) #3 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(368): LocalisationCache->loadItem(string, string) #4 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(293): LocalisationCache->loadSubitem(string, string, string) #5 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(313): LocalisationCache->getSubitem(string, string, string) #6 /www/dev.translatewiki.net/docroot/w/languages/Language.php(4485): LocalisationCache->getSubitemList(string, string) #7 /www/dev.translatewiki.net/docroot/w/includes/cache/MessageCache.php(247): Language::getMessageKeysFor(string) #8 /www/dev.translatewiki.net/docroot/w/includes/cache/MessageCache.php(1019): MessageCache->load(string) #9 /www/dev.translatewiki.net/docroot/w/includes/cache/MessageCache.php(946): MessageCache->getMsgFromNamespace(string, string) #10 /www/dev.translatewiki.net/docroot/w/includes/cache/MessageCache.php(916): MessageCache->getMessageForLang(LanguageEn, string, boolean, array) #11 /www/dev.translatewiki.net/docroot/w/includes/cache/MessageCache.php(858): MessageCache->getMessageFromFallbackChain(LanguageEn, string, boolean) #12 /www/dev.translatewiki.net/docroot/w/includes/language/Message.php(1310): MessageCache->get(string, boolean, LanguageEn) #13 /www/dev.translatewiki.net/docroot/w/includes/language/Message.php(1029): Message->fetchMessage() #14 /www/dev.translatewiki.net/docroot/w/extensions/CirrusSearch/includes/Hooks.php(198): Message->isDisabled() #15 /www/dev.translatewiki.net/docroot/w/includes/libs/objectcache/BagOStuff.php(132): CirrusSearch\Hooks::CirrusSearch\{closure}(integer) #16 /www/dev.translatewiki.net/docroot/w/extensions/CirrusSearch/includes/Hooks.php(202): BagOStuff->getWithSetCallback(string, integer, Closure) #17 /www/dev.translatewiki.net/docroot/w/extensions/CirrusSearch/includes/Hooks.php(100): CirrusSearch\Hooks::overrideMoreLikeThisOptionsFromMessage() #18 /www/dev.translatewiki.net/docroot/w/extensions/CirrusSearch/includes/Hooks.php(65): CirrusSearch\Hooks::initializeForRequest(WebRequest) #19 /www/dev.translatewiki.net/docroot/w/includes/Hooks.php(174): CirrusSearch\Hooks::onBeforeInitialize(Title, NULL, OutputPage, User, WebRequest, MediaWiki) #20 /www/dev.translatewiki.net/docroot/w/includes/Hooks.php(202): Hooks::callHook(string, array, array, NULL) #21 /www/dev.translatewiki.net/docroot/w/includes/MediaWiki.php(186): Hooks::run(string, array) #22 /www/dev.translatewiki.net/docroot/w/includes/MediaWiki.php(892): MediaWiki->performRequest() #23 /www/dev.translatewiki.net/docroot/w/includes/MediaWiki.php(523): MediaWiki->main() #24 /www/dev.translatewiki.net/docroot/w/index.php(42): MediaWiki->run() #25 {main}
It's trying to read CDB files from root!
My config:
$wgLocalisationCacheConf['store'] = 'files'; $wgLocalisationCacheConf['manualRecache'] = false;