Page MenuHomePhabricator

ApiLogin should not open master connection to centralauth DB
Open, Stalled, MediumPublic

Description

ApiLogin does not have the write mode flag set (and it shouldn't), so when it opens a master connection (via CentralAuth by way of AuthManager) this causes a warning.

Expectation (masterConns <= 0) by ApiMain::setRequestExpectations not met:
[connect to 10.64.16.30 (centralauth)]
#0 /srv/mediawiki/php-1.29.0-wmf.6/includes/libs/rdbms/TransactionProfiler.php(160): TransactionProfiler->reportExpectationViolated()
#1 /srv/mediawiki/php-1.29.0-wmf.6/includes/libs/rdbms/loadbalancer/LoadBalancer.php(587): TransactionProfiler->recordConnection()
#2 /srv/mediawiki/php-1.29.0-wmf.6/extensions/CentralAuth/includes/CentralAuthUtils.php(53): LoadBalancer->getConnection()
#3 /srv/mediawiki/php-1.29.0-wmf.6/extensions/CentralAuth/includes/CentralAuthUser.php(228): CentralAuthUtils::getCentralDB()
#4 /srv/mediawiki/php-1.29.0-wmf.6/extensions/CentralAuth/includes/CentralAuthUser.php(416): CentralAuthUser->getSafeReadDB()
#5 /srv/mediawiki/php-1.29.0-wmf.6/extensions/CentralAuth/includes/CentralAuthUser.php(359): CentralAuthUser->loadFromDatabase()
#6 /srv/mediawiki/php-1.29.0-wmf.6/extensions/CentralAuth/includes/CentralAuthUser.php(532): CentralAuthUser->loadState()
#7 /srv/mediawiki/php-1.29.0-wmf.6/extensions/CentralAuth/includes/CentralAuthUser.php(1843): CentralAuthUser->getId()
#8 /srv/mediawiki/php-1.29.0-wmf.6/extensions/CentralAuth/includes/CentralAuthUser.php(1878): CentralAuthUser->canAuthenticate()
#9 /srv/mediawiki/php-1.29.0-wmf.6/extensions/CentralAuth/includes/CentralAuthPrimaryAuthenticationProvider.php(128): CentralAuthUser->authenticate()
#10 /srv/mediawiki/php-1.29.0-wmf.6/includes/auth/AuthManager.php(452): CentralAuthPrimaryAuthenticationProvider->beginPrimaryAuthentication()
#11 /srv/mediawiki/php-1.29.0-wmf.6/includes/auth/AuthManager.php(382): MediaWiki\Auth\AuthManager->continueAuthentication()
#12 /srv/mediawiki/php-1.29.0-wmf.6/includes/api/ApiLogin.php(146): MediaWiki\Auth\AuthManager->beginAuthentication()
#13 /srv/mediawiki/php-1.29.0-wmf.6/includes/api/ApiMain.php(1532): ApiLogin->execute()
#14 /srv/mediawiki/php-1.29.0-wmf.6/includes/api/ApiMain.php(541): ApiMain->executeAction()
#15 /srv/mediawiki/php-1.29.0-wmf.6/includes/api/ApiMain.php(512): ApiMain->executeActionWithErrorHandling()
#16 /srv/mediawiki/php-1.29.0-wmf.6/api.php(83): ApiMain->execute()
#17 /srv/mediawiki/w/api.php(3): include()
#18 {main}

@aaron opined on IRC that:

17:09:23 <+AaronSchulz> the lazy import of local names should just be fixed/migrated and the password hash updates should silence the warnings via setSilenced() or the like
17:09:41 <+AaronSchulz> but, yes, it should not have write mode

See also: