Page MenuHomePhabricator

Wikimedia\NormalizedException\NormalizedException: Authentication failed because of inconsistent provider array
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
labels.normalized_message
[{reqId}] {exception_url}   Wikimedia\NormalizedException\NormalizedException: Authentication failed because of inconsistent provider array
error.stack_trace
from /srv/mediawiki/php-1.43.0-wmf.20/includes/auth/AuthManager.php(555)
#0 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/AuthManagerSpecialPage.php(393): MediaWiki\Auth\AuthManager->continueAuthentication(array)
#1 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/AuthManagerSpecialPage.php(525): MediaWiki\SpecialPage\AuthManagerSpecialPage->performAuthenticationStep(string, array)
#2 [internal function]: MediaWiki\SpecialPage\AuthManagerSpecialPage->handleFormSubmit(array, MediaWiki\HTMLForm\CodexHTMLForm)
#3 /srv/mediawiki/php-1.43.0-wmf.20/includes/htmlform/HTMLForm.php(794): call_user_func(array, array, MediaWiki\HTMLForm\CodexHTMLForm)
#4 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/AuthManagerSpecialPage.php(456): MediaWiki\HTMLForm\HTMLForm->trySubmit()
#5 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/LoginSignupSpecialPage.php(390): MediaWiki\SpecialPage\AuthManagerSpecialPage->trySubmit()
#6 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/SpecialPage.php(719): MediaWiki\SpecialPage\LoginSignupSpecialPage->execute(null)
#7 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/SpecialPageFactory.php(1705): MediaWiki\SpecialPage\SpecialPage->run(null)
#8 /srv/mediawiki/php-1.43.0-wmf.20/includes/actions/ActionEntryPoint.php(502): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext)
#9 /srv/mediawiki/php-1.43.0-wmf.20/includes/actions/ActionEntryPoint.php(145): MediaWiki\Actions\ActionEntryPoint->performRequest()
#10 /srv/mediawiki/php-1.43.0-wmf.20/includes/MediaWikiEntryPoint.php(200): MediaWiki\Actions\ActionEntryPoint->execute()
#11 /srv/mediawiki/php-1.43.0-wmf.20/index.php(58): MediaWiki\MediaWikiEntryPoint->run()
#12 /srv/mediawiki/w/index.php(3): require(string)
#13 {main}
Impact
Notes

That is preceded by:

PHP Notice: Undefined index: providerIds
from /srv/mediawiki/php-1.43.0-wmf.20/includes/auth/AuthManager.php(549)
#0 /srv/mediawiki/php-1.43.0-wmf.20/includes/auth/AuthManager.php(549): MWExceptionHandler::handleError(int, string, string, int, array)
#1 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/AuthManagerSpecialPage.php(393): MediaWiki\Auth\AuthManager->continueAuthentication(array)
#2 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/AuthManagerSpecialPage.php(525): MediaWiki\SpecialPage\AuthManagerSpecialPage->performAuthenticationStep(string, array)
#3 [internal function]: MediaWiki\SpecialPage\AuthManagerSpecialPage->handleFormSubmit(array, MediaWiki\HTMLForm\CodexHTMLForm)
#4 /srv/mediawiki/php-1.43.0-wmf.20/includes/htmlform/HTMLForm.php(794): call_user_func(array, array, MediaWiki\HTMLForm\CodexHTMLForm)
#5 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/AuthManagerSpecialPage.php(456): MediaWiki\HTMLForm\HTMLForm->trySubmit()
#6 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/LoginSignupSpecialPage.php(390): MediaWiki\SpecialPage\AuthManagerSpecialPage->trySubmit()
#7 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/SpecialPage.php(719): MediaWiki\SpecialPage\LoginSignupSpecialPage->execute(null)
#8 /srv/mediawiki/php-1.43.0-wmf.20/includes/specialpage/SpecialPageFactory.php(1705): MediaWiki\SpecialPage\SpecialPage->run(null)
#9 /srv/mediawiki/php-1.43.0-wmf.20/includes/actions/ActionEntryPoint.php(502): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext)
#10 /srv/mediawiki/php-1.43.0-wmf.20/includes/actions/ActionEntryPoint.php(145): MediaWiki\Actions\ActionEntryPoint->performRequest()
#11 /srv/mediawiki/php-1.43.0-wmf.20/includes/MediaWikiEntryPoint.php(200): MediaWiki\Actions\ActionEntryPoint->execute()
#12 /srv/mediawiki/php-1.43.0-wmf.20/index.php(58): MediaWiki\MediaWikiEntryPoint->run()
#13 /srv/mediawiki/w/index.php(3): require(string)
#14 {main}

Details

Event Timeline

Caused by rMWcde00b558542: auth: Add AuthManagerFilterProviders hook. Not sure if it's a bug in that patch or it just exposed a bug from earlier, will look into it.

If it doesn't occur any more, it's simply a side effect of deploying a change that adds a new field to a data structure stored in the session, while some live sessions were holding the old version of the data structure. (Sorry, I should have foreseen that happening.) Authentication sessions expire in five minutes so not a big deal, a few logins (up to a hundred or so, I'd guess based on the size difference between group1 and group2) will fail with a strange error message and users will have to retry. Not great but not worth an emergency patch, IMO.

If it doesn't occur any more

Convenience Logstash link: https://logstash.wikimedia.org/goto/78de927e2adc79918930781084848d16

Not great but not worth an emergency patch, IMO.

Then again, it's really easy to make an emergency patch for it.

Change #1068003 had a related patch set uploaded (by Gergő Tisza; author: Gergő Tisza):

[mediawiki/core@master] auth: Relax AuthManager session state check while cde00b55 is deployed

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

Change #1068003 merged by jenkins-bot:

[mediawiki/core@master] auth: Relax AuthManager session state check while cde00b55 is deployed

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

Change #1068051 had a related patch set uploaded (by Bartosz Dziewoński; author: Gergő Tisza):

[mediawiki/core@wmf/1.43.0-wmf.20] auth: Relax AuthManager session state check while cde00b55 is deployed

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

Change #1068051 merged by jenkins-bot:

[mediawiki/core@wmf/1.43.0-wmf.20] auth: Relax AuthManager session state check while cde00b55 is deployed

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

Mentioned in SAL (#wikimedia-operations) [2024-08-28T20:37:41Z] <cjming@deploy1003> Started scap sync-world: Backport for [[gerrit:1068051|auth: Relax AuthManager session state check while cde00b55 is deployed (T373504)]], [[gerrit:1068052|Fix missing definition of setSaveErrorMessage too (T373288)]], [[gerrit:1068041|CentralAuthApiSessionProvider: Avoid error in internal API requests (T373507)]]

Mentioned in SAL (#wikimedia-operations) [2024-08-28T20:39:45Z] <cjming@deploy1003> matmarex, cjming: Backport for [[gerrit:1068051|auth: Relax AuthManager session state check while cde00b55 is deployed (T373504)]], [[gerrit:1068052|Fix missing definition of setSaveErrorMessage too (T373288)]], [[gerrit:1068041|CentralAuthApiSessionProvider: Avoid error in internal API requests (T373507)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Mentioned in SAL (#wikimedia-operations) [2024-08-28T20:49:13Z] <cjming@deploy1003> Finished scap sync-world: Backport for [[gerrit:1068051|auth: Relax AuthManager session state check while cde00b55 is deployed (T373504)]], [[gerrit:1068052|Fix missing definition of setSaveErrorMessage too (T373288)]], [[gerrit:1068041|CentralAuthApiSessionProvider: Avoid error in internal API requests (T373507)]] (duration: 11m 31s)