Page MenuHomePhabricator

Fatal "BadMethodCallException: Sessions are disabled" due to user options call in EventLogging module
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   BadMethodCallException: Sessions are disabled for load entry point
FrameLocationCall
from/srv/mediawiki/php-1.44.0-wmf.19/includes/session/SessionManager.php(865)
#0/srv/mediawiki/php-1.44.0-wmf.19/includes/session/SessionManager.php(203)MediaWiki\Session\SessionManager->getSessionFromInfo(MediaWiki\Session\SessionInfo, MediaWiki\Request\WebRequest)
#1/srv/mediawiki/php-1.44.0-wmf.19/includes/Request/WebRequest.php(870)MediaWiki\Session\SessionManager->getSessionForRequest(MediaWiki\Request\WebRequest)
#2/srv/mediawiki/php-1.44.0-wmf.19/includes/user/User.php(1099)MediaWiki\Request\WebRequest->getSession()
#3/srv/mediawiki/php-1.44.0-wmf.19/includes/user/User.php(450)MediaWiki\User\User->loadFromSession()
#4/srv/mediawiki/php-1.44.0-wmf.19/includes/user/User.php(1603)MediaWiki\User\User->load()
#5/srv/mediawiki/php-1.44.0-wmf.19/includes/user/Options/UserOptionsManager.php(562)MediaWiki\User\User->getName()
#6/srv/mediawiki/php-1.44.0-wmf.19/includes/user/Options/UserOptionsManager.php(414)MediaWiki\User\Options\UserOptionsManager->getCacheKey(MediaWiki\User\User)
#7/srv/mediawiki/php-1.44.0-wmf.19/includes/user/Options/UserOptionsManager.php(176)MediaWiki\User\Options\UserOptionsManager->loadUserOptions(MediaWiki\User\User, int)
#8/srv/mediawiki/php-1.44.0-wmf.19/includes/context/RequestContext.php(471)MediaWiki\User\Options\UserOptionsManager->getOption(MediaWiki\User\User, string)
#9/srv/mediawiki/php-1.44.0-wmf.19/includes/language/Message/Message.php(852)MediaWiki\Context\RequestContext->getLanguage()
#10/srv/mediawiki/php-1.44.0-wmf.19/includes/language/Message/Message.php(429)MediaWiki\Message\Message::MediaWiki\Message\{closure}()
#11/srv/mediawiki/php-1.44.0-wmf.19/includes/language/Message/Message.php(1498)MediaWiki\Message\Message->getLanguage()
#12/srv/mediawiki/php-1.44.0-wmf.19/includes/language/Message/Message.php(1013)MediaWiki\Message\Message->fetchMessage()
#13/srv/mediawiki/php-1.44.0-wmf.19/includes/language/Message/Message.php(1117)MediaWiki\Message\Message->format(string)
#14/srv/mediawiki/php-1.44.0-wmf.19/includes/Status/StatusFormatter.php(124)MediaWiki\Message\Message->plain()
#15/srv/mediawiki/php-1.44.0-wmf.19/extensions/MetricsPlatform/includes/InstrumentConfigsFetcher.php(101)MediaWiki\Status\StatusFormatter->getWikiText(MediaWiki\Status\Status, array)
#16/srv/mediawiki/php-1.44.0-wmf.19/includes/libs/objectcache/WANObjectCache.php(1834)MediaWiki\Extension\MetricsPlatform\InstrumentConfigsFetcher->MediaWiki\Extension\MetricsPlatform\{closure}(array, int, array, float, array)
#17/srv/mediawiki/php-1.44.0-wmf.19/includes/libs/objectcache/WANObjectCache.php(1639)Wikimedia\ObjectCache\WANObjectCache->fetchOrRegenerate(string, int, Closure, array, array)
#18/srv/mediawiki/php-1.44.0-wmf.19/extensions/MetricsPlatform/includes/InstrumentConfigsFetcher.php(129)Wikimedia\ObjectCache\WANObjectCache->getWithSetCallback(string, int, Closure, array)
#19/srv/mediawiki/php-1.44.0-wmf.19/extensions/MetricsPlatform/includes/InstrumentConfigsFetcher.php(57)MediaWiki\Extension\MetricsPlatform\InstrumentConfigsFetcher->getConfigs(int)
#20/srv/mediawiki/php-1.44.0-wmf.19/extensions/MetricsPlatform/includes/Hooks.php(86)MediaWiki\Extension\MetricsPlatform\InstrumentConfigsFetcher->getInstrumentConfigs()
#21/srv/mediawiki/php-1.44.0-wmf.19/includes/HookContainer/HookContainer.php(155)MediaWiki\Extension\MetricsPlatform\Hooks->onGetStreamConfigs(array)
#22/srv/mediawiki/php-1.44.0-wmf.19/extensions/EventStreamConfig/includes/Hooks/HookRunner.php(28)MediaWiki\HookContainer\HookContainer->run(string, array, array)
#23/srv/mediawiki/php-1.44.0-wmf.19/extensions/EventStreamConfig/includes/StreamConfigsFactory.php(54)MediaWiki\Extension\EventStreamConfig\Hooks\HookRunner->onGetStreamConfigs(array)
#24/srv/mediawiki/php-1.44.0-wmf.19/extensions/EventStreamConfig/includes/ServiceWiring.php(27)MediaWiki\Extension\EventStreamConfig\StreamConfigsFactory->getInstance()
#25/srv/mediawiki/php-1.44.0-wmf.19/vendor/wikimedia/services/src/ServiceContainer.php(442)Wikimedia\Services\ServiceContainer::{closure}(MediaWiki\MediaWikiServices)
#26/srv/mediawiki/php-1.44.0-wmf.19/vendor/wikimedia/services/src/ServiceContainer.php(406)Wikimedia\Services\ServiceContainer->createService(string)
#27/srv/mediawiki/php-1.44.0-wmf.19/includes/MediaWikiServices.php(370)Wikimedia\Services\ServiceContainer->getService(string)
#28/srv/mediawiki/php-1.44.0-wmf.19/extensions/EventLogging/ServiceWiring.php(31)MediaWiki\MediaWikiServices->getService(string)
#29/srv/mediawiki/php-1.44.0-wmf.19/vendor/wikimedia/services/src/ServiceContainer.php(442)Wikimedia\Services\ServiceContainer::{closure}(MediaWiki\MediaWikiServices)
#30/srv/mediawiki/php-1.44.0-wmf.19/vendor/wikimedia/services/src/ServiceContainer.php(406)Wikimedia\Services\ServiceContainer->createService(string)
#31/srv/mediawiki/php-1.44.0-wmf.19/includes/MediaWikiServices.php(370)Wikimedia\Services\ServiceContainer->getService(string)
#32/srv/mediawiki/php-1.44.0-wmf.19/extensions/EventLogging/includes/Hooks.php(185)MediaWiki\MediaWikiServices->getService(string)
#33/srv/mediawiki/php-1.44.0-wmf.19/extensions/EventLogging/includes/Hooks.php(118)MediaWiki\Extension\EventLogging\Hooks::loadEventStreamConfigs()
#34/srv/mediawiki/php-1.44.0-wmf.19/extensions/EventLogging/includes/Hooks.php(130)MediaWiki\Extension\EventLogging\Hooks::getEventLoggingConfig(MediaWiki\Config\GlobalVarConfig)
#35/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/FileModule.php(1327)MediaWiki\Extension\EventLogging\Hooks::getModuleData(MediaWiki\ResourceLoader\Context, MediaWiki\Config\GlobalVarConfig, null)
#36/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/FileModule.php(1183)MediaWiki\ResourceLoader\FileModule->expandFileInfo(MediaWiki\ResourceLoader\Context, array, string)
#37/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/FileModule.php(602)MediaWiki\ResourceLoader\FileModule->expandPackageFiles(MediaWiki\ResourceLoader\Context)
#38/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/Module.php(873)MediaWiki\ResourceLoader\FileModule->getDefinitionSummary(MediaWiki\ResourceLoader\Context)
#39/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/StartUpModule.php(223)MediaWiki\ResourceLoader\Module->getVersionHash(MediaWiki\ResourceLoader\Context)
#40/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/StartUpModule.php(428)MediaWiki\ResourceLoader\StartUpModule->getModuleRegistrations(MediaWiki\ResourceLoader\Context)
#41/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/Module.php(759)MediaWiki\ResourceLoader\StartUpModule->getScript(MediaWiki\ResourceLoader\Context)
#42/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/Module.php(734)MediaWiki\ResourceLoader\Module->buildContent(MediaWiki\ResourceLoader\Context)
#43/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/Module.php(870)MediaWiki\ResourceLoader\Module->getModuleContent(MediaWiki\ResourceLoader\Context)
#44/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/ResourceLoader.php(611)MediaWiki\ResourceLoader\Module->getVersionHash(MediaWiki\ResourceLoader\Context)
#45/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/ResourceLoader.php(711)MediaWiki\ResourceLoader\ResourceLoader->getCombinedVersion(MediaWiki\ResourceLoader\Context, array)
#46/srv/mediawiki/php-1.44.0-wmf.19/includes/ResourceLoader/ResourceLoaderEntryPoint.php(54)MediaWiki\ResourceLoader\ResourceLoader->respond(MediaWiki\ResourceLoader\Context)
#47/srv/mediawiki/php-1.44.0-wmf.19/includes/MediaWikiEntryPoint.php(202)MediaWiki\ResourceLoader\ResourceLoaderEntryPoint->execute()
#48/srv/mediawiki/php-1.44.0-wmf.19/load.php(42)MediaWiki\MediaWikiEntryPoint->run()
#49/srv/mediawiki/w/load.php(3)require(string)
#50{main}
Impact
Notes

Details

Request URL
https://wikitech.wikimedia.org/w/load.php?lang=*&modules=*&only=*&raw=*&skin=*
Related Changes in Gerrit:

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
Pppery subscribed.

Looks like Metrics Platform is the actual guilty codebase here

Krinkle subscribed.

Indeed. It is unsafe to unconditionally depend on global state from a Message, Status, or RequestContext object outside e.g. UI code inside a SpecialPage subclass.

The relevant call chain starts at MediaWiki\Extension\EventLogging\Hooks::getModuleData (for the ext.eventLogging/data.json file), and eventually reaches into MetricsPlatform where it formats a Message in a way that assumes an index.php UI request with a user session and language preference.

Change #1127008 had a related patch set uploaded (by Bartosz Dziewoński; author: Bartosz Dziewoński):

[mediawiki/extensions/MetricsPlatform@master] InstrumentConfigsFetcher: Fix use of StatusFormatter for debug logging

https://gerrit.wikimedia.org/r/1127008

Krinkle renamed this task from BadMethodCallException: Sessions are disabled for load entry point to Fatal "BadMethodCallException: Sessions are disabled" due to user options call in EventLogging module.Mar 14 2025, 2:37 AM

Change #1127008 merged by jenkins-bot:

[mediawiki/extensions/MetricsPlatform@master] InstrumentConfigsFetcher: Fix use of StatusFormatter for debug logging

https://gerrit.wikimedia.org/r/1127008

matmarex claimed this task.