[2022-04-22T11:19:16.376639+00:00] exception.ERROR: [ad3e49eb138ef3264cfc4bb4] [no req] Wikimedia\Services\ContainerDisabledException: Container disabled! {"exception":"[object] (Wikimedia\\Services\\ContainerDisabledException(code: 0): Container disabled! at /srv/mediawiki/tags/2022-04-20_13:51:23/vendor/wikimedia/services/src/ServiceContainer.php:408) [stacktrace] #0 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/MediaWikiServices.php(301): Wikimedia\\Services\\ServiceContainer->getService() #1 /srv/mediawiki/tags/2022-04-20_13:51:23/vendor/wikimedia/services/src/ServiceContainer.php(424): MediaWiki\\MediaWikiServices->getService() #2 /srv/mediawiki/tags/2022-04-20_13:51:23/vendor/wikimedia/object-factory/src/ObjectFactory.php(211): Wikimedia\\Services\\ServiceContainer->get() #3 /srv/mediawiki/tags/2022-04-20_13:51:23/vendor/wikimedia/object-factory/src/ObjectFactory.php(152): Wikimedia\\ObjectFactory\\ObjectFactory::getObjectFromSpec() #4 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/session/SessionManager.php(471): Wikimedia\\ObjectFactory\\ObjectFactory->createObject() #5 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/session/SessionManager.php(530): MediaWiki\\Session\\SessionManager->getProviders() #6 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/session/SessionManager.php(253): MediaWiki\\Session\\SessionManager->getSessionInfoForRequest() #7 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/WebRequest.php(842): MediaWiki\\Session\\SessionManager->getSessionForRequest() #8 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/user/User.php(1116): WebRequest->getSession() #9 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/user/User.php(439): User->loadFromSession() #10 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/user/User.php(1903): User->load() #11 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/user/User.php(2548): User->getId() #12 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/user/UserOptionsManager.php(644): User->isRegistered() #13 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/user/UserOptionsManager.php(496): MediaWiki\\User\\UserOptionsManager->getCacheKey() #14 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/user/UserOptionsManager.php(147): MediaWiki\\User\\UserOptionsManager->loadUserOptions() #15 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/user/User.php(2370): MediaWiki\\User\\UserOptionsManager->getOption() #16 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/context/RequestContext.php(451): User->getOption() #17 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/language/Message.php(384): RequestContext->getLanguage() #18 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/language/Message.php(1491): Message->getLanguage() #19 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/language/Message.php(1116): Message->fetchMessage() #20 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/MWTimestamp.php(160): Message->exists() #21 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/parser/Parser.php(4616): MWTimestamp->getTimezoneMessage() #22 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/parser/Parser.php(4587): Parser->pstPass2() #23 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/content/WikitextContentHandler.php(220): Parser->preSaveTransform() #24 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/content/Transform/ContentTransformer.php(46): WikitextContentHandler->preSaveTransform() #25 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/Storage/DerivedPageDataUpdater.php(914): MediaWiki\\Content\\Transform\\ContentTransformer->preSaveTransform() #26 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/Storage/PageUpdater.php(319): MediaWiki\\Storage\\DerivedPageDataUpdater->prepareContent() #27 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/Storage/PageUpdater.php(860): MediaWiki\\Storage\\PageUpdater->prepareUpdate() #28 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/page/WikiPage.php(1997): MediaWiki\\Storage\\PageUpdater->saveRevision() #29 /srv/mediawiki/tags/2022-04-20_13:51:23/extensions/Translate/utils/MessageUpdateJob.php(115): WikiPage->doUserEditContent() #30 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/jobqueue/JobRunner.php(383): MessageUpdateJob->run() #31 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/jobqueue/JobRunner.php(344): JobRunner->doExecuteJob() #32 /srv/mediawiki/tags/2022-04-20_13:51:23/includes/jobqueue/JobRunner.php(248): JobRunner->executeJob() #33 /srv/mediawiki/tags/2022-04-20_13:51:23/maintenance/runJobs.php(98): JobRunner->run() #34 /srv/mediawiki/tags/2022-04-20_13:51:23/maintenance/doMaintenance.php(122): RunJobs->execute() #35 /srv/mediawiki/tags/2022-04-20_13:51:23/maintenance/runJobs.php(136): require_once('/srv/mediawiki/...') #36 {main} ","exception_url":"[no req]","reqId":"ad3e49eb138ef3264cfc4bb4","caught_by":"other"} []
Description
Description
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Open | None | T306707 Container disabled! (JobQueue/MessageUpdateJob/PageUpdater/WikitextContentHandler/Parser/MWTimestamp/Message) | |||
Open | None | T265400 Research to create service for SessionManager::singleton()/getGlobalSession() |
Event Timeline
Comment Actions
It seems related to ObjectFactory, a workaround found via code search: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Workflows/+/766127/3/src/Definition/Repository/DefinitionRepositoryFactory.php#20
Comment Actions
The service container can be destroyed by MediaWikiServices::resetChildProcessServices() which is used by ForkContoller in the core and the Translate extension.
It turns out that storing a service container instance or using closure to avoid circular dependency in ServiceWiring is not a good practice.
Comment Actions
SessionManager singleton stored an outdated ObjectFactory instance.
That would happen if somethign access the SessionManager prematurely, before mediaWiki is fully initialized.