Page MenuHomePhabricator

Circular dependency when creating service! ResourceLoader -> ResourceLoader
Closed, ResolvedPublic

Description

I have seen this couple of times when running message cache rebuild. Possibly only happens when some cache is expired together with expired localisation cache.

RuntimeException from line 448 of /www/dev.translatewiki.net/docroot/w/includes/libs/services/ServiceContainer.php: Circular dependency when creating service! ResourceLoader -> ResourceLoader
#0 /www/dev.translatewiki.net/docroot/w/includes/libs/services/ServiceContainer.php(427): Wikimedia\Services\ServiceContainer->createService('ResourceLoader')
#1 /www/dev.translatewiki.net/docroot/w/includes/MediaWikiServices.php(919): Wikimedia\Services\ServiceContainer->getService('ResourceLoader')
#2 /www/dev.translatewiki.net/docroot/w/includes/ServiceWiring.php(336): MediaWiki\MediaWikiServices->getResourceLoader()
#3 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(1049): Wikimedia\Services\ServiceContainer->{closure}()
#4 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(489): LocalisationCache->recache('en')
#5 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(363): LocalisationCache->initLanguage('en')
#6 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(304): LocalisationCache->loadItem('en', 'namespaceGender...')
#7 /www/dev.translatewiki.net/docroot/w/languages/Language.php(615): LocalisationCache->getItem('en', 'namespaceGender...')
#8 /www/dev.translatewiki.net/docroot/w/includes/title/MediaWikiTitleCodec.php(101): Language->needsGenderDistinction()
#9 /www/dev.translatewiki.net/docroot/w/includes/title/MediaWikiTitleCodec.php(138): MediaWikiTitleCodec->getNamespaceName(8, 'Gadgets-definit...')
#10 /www/dev.translatewiki.net/docroot/w/includes/title/MediaWikiTitleCodec.php(260): MediaWikiTitleCodec->formatTitle(8, 'Gadgets-definit...', '', '')
#11 /www/dev.translatewiki.net/docroot/w/includes/cache/LinkCache.php(246): MediaWikiTitleCodec->getPrefixedDBkey(Object(Title))
#12 /www/dev.translatewiki.net/docroot/w/includes/Title.php(3182): LinkCache->addLinkObj(Object(Title))
#13 /www/dev.translatewiki.net/docroot/w/includes/Revision/RevisionRecord.php(109): Title->getArticleID()
#14 /www/dev.translatewiki.net/docroot/w/includes/Revision/RevisionStoreRecord.php(64): MediaWiki\Revision\RevisionRecord->__construct(Object(Title), Object(MediaWiki\Revision\RevisionSlots), false)
#15 /www/dev.translatewiki.net/docroot/w/includes/Revision/RevisionStore.php(1893): MediaWiki\Revision\RevisionStoreRecord->__construct(Object(Title), Object(User), Object(CommentStoreComment), Object(stdClass), Object(MediaWiki\Revision\RevisionSlots), false)
#16 /www/dev.translatewiki.net/docroot/w/includes/Revision/RevisionStore.php(1816): MediaWiki\Revision\RevisionStore->newRevisionFromRowAndSlots(Object(stdClass), Object(MediaWiki\Revision\RevisionSlots), 0, Object(Title), false)
#17 /www/dev.translatewiki.net/docroot/w/includes/Revision/RevisionStore.php(2538): MediaWiki\Revision\RevisionStore->newRevisionFromRow(Object(stdClass), 0, Object(Title))
#18 /www/dev.translatewiki.net/docroot/w/includes/Revision/RevisionStore.php(1513): MediaWiki\Revision\RevisionStore->loadRevisionFromConds(Object(Wikimedia\Rdbms\DBConnRef), Array, 0, Object(Title))
#19 /www/dev.translatewiki.net/docroot/w/includes/Revision.php(139): MediaWiki\Revision\RevisionStore->getRevisionByTitle(Object(Title), 0, 0)
#20 /www/dev.translatewiki.net/docroot/w/extensions/Gadgets/includes/MediaWikiGadgetsDefinitionRepo.php(139): Revision::newFromTitle(Object(Title))
#21 /www/dev.translatewiki.net/docroot/w/extensions/Gadgets/includes/MediaWikiGadgetsDefinitionRepo.php(108): MediaWikiGadgetsDefinitionRepo->fetchStructuredList()
#22 /www/dev.translatewiki.net/docroot/w/includes/libs/objectcache/wancache/WANObjectCache.php(1424): MediaWikiGadgetsDefinitionRepo->{closure}(false, 86400, Array, NULL)
#23 /www/dev.translatewiki.net/docroot/w/includes/libs/objectcache/wancache/WANObjectCache.php(1278): WANObjectCache->fetchOrRegenerate('sw:gadgets-defi...', 86400, Object(Closure), Array)
#24 /www/dev.translatewiki.net/docroot/w/extensions/Gadgets/includes/MediaWikiGadgetsDefinitionRepo.php(115): WANObjectCache->getWithSetCallback('sw:gadgets-defi...', 86400, Object(Closure), Array)
#25 /www/dev.translatewiki.net/docroot/w/extensions/Gadgets/includes/MediaWikiGadgetsDefinitionRepo.php(31): MediaWikiGadgetsDefinitionRepo->loadGadgets()
#26 /www/dev.translatewiki.net/docroot/w/extensions/Gadgets/includes/GadgetHooks.php(134): MediaWikiGadgetsDefinitionRepo->getGadgetIds()
#27 /www/dev.translatewiki.net/docroot/w/includes/Hooks.php(174): GadgetHooks::registerModules(Object(ResourceLoader))
#28 /www/dev.translatewiki.net/docroot/w/includes/Hooks.php(202): Hooks::callHook('ResourceLoaderR...', Array, Array, NULL)
#29 /www/dev.translatewiki.net/docroot/w/includes/ServiceWiring.php(703): Hooks::run('ResourceLoaderR...', Array)
#30 /www/dev.translatewiki.net/docroot/w/includes/libs/services/ServiceContainer.php(458): Wikimedia\Services\ServiceContainer->{closure}(Object(MediaWiki\MediaWikiServices))
#31 /www/dev.translatewiki.net/docroot/w/includes/libs/services/ServiceContainer.php(427): Wikimedia\Services\ServiceContainer->createService('ResourceLoader')
#32 /www/dev.translatewiki.net/docroot/w/includes/MediaWikiServices.php(919): Wikimedia\Services\ServiceContainer->getService('ResourceLoader')
#33 /www/dev.translatewiki.net/docroot/w/maintenance/rebuildLocalisationCache.php(98): MediaWiki\MediaWikiServices->getResourceLoader()
#34 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCache.php(1049): RebuildLocalisationCache->{closure}()
#35 /www/dev.translatewiki.net/docroot/w/includes/cache/localisation/LocalisationCacheBulkLoad.php(100): LocalisationCache->recache('ab')
#36 /www/dev.translatewiki.net/docroot/w/maintenance/rebuildLocalisationCache.php(178): LocalisationCacheBulkLoad->recache('ab')
#37 /www/dev.translatewiki.net/docroot/w/maintenance/rebuildLocalisationCache.php(134): RebuildLocalisationCache->doRebuild(Array, Object(LocalisationCacheBulkLoad), false)
#38 /www/dev.translatewiki.net/docroot/w/maintenance/doMaintenance.php(99): RebuildLocalisationCache->execute()
#39 /www/dev.translatewiki.net/docroot/w/maintenance/rebuildLocalisationCache.php(197): require_once('/www/dev.transl...')
#40 {main}

Event Timeline

Krinkle claimed this task.
Krinkle subscribed.

There were similar reports in September last year, which have since closed. Presumed solved.