From the debug log in a Jenkins job:
Start request GET /index.php?title=… … [caches] cluster: APCUBagOStuff, WAN: mediawiki-main-default, stash: db-replicated, message: APCUBagOStuff, session: APCUBagOStuff [localisation] LocalisationCache: using store LCStoreDB … [DBQuery] Wikimedia\Rdbms\DatabaseMysqlBase::serverIsReadOnly [0.001s]: SHOW GLOBAL VARIABLES LIKE 'read_only' [DBQuery] Wikimedia\Rdbms\Database::beginIfImplied (LCStoreDB::get) [0s]: BEGIN [DBQuery] LCStoreDB::get [0s]: SELECT lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'deps' LIMIT 1 [DBQuery] LCStoreDB::get [0.001s]: SELECT lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'list' LIMIT 1 [DBQuery] LCStoreDB::get [0s]: SELECT lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'preload' LIMIT 1 [DBQuery] LCStoreDB::get [0s]: SELECT lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'preload' LIMIT 1 [DBQuery] LCStoreDB::get [0s]: SELECT lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'specialPageAliases' LIMIT 1 [DBQuery] LCStoreDB::get [0s]: SELECT lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'namespaceGenderAliases' LIMIT 1 [DBQuery] LCStoreDB::get [0s]: SELECT lc_value FROM `l10n_cache` WHERE lc_lang = 'en' AND lc_key = 'list' LIMIT 1 [DBQuery] MessageCache::loadFromDB(en)-big [0s]: SELECT page_title,page_latest FROM `page` WHERE page_is_redirect = '0' AND page_namespace = '8' AND (page_title NOT LIKE '%/%' ESCAPE '`' ) AND (page_len > 10000) [DBQuery] MessageCache::loadFromDB(en)-small [0.001s]: SELECT …
Note how it fetches preload twice, that shouldn't happen. Looking at the code in LocalisationCache::initLanguage, I believe it is happening as follows:
- LocalisationCache::initLanguage
- …
- $this->isExpired
- getItem('deps'),
- getItem('list')
- getItem('preload')
- …
- $this->getItem(…, 'preload')
- …