Page MenuHomePhabricator

MWException: Invalid name 'wpgadget-Special:WhatLinksHere_action_links' passed to HTMLFormField::__construct
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   MWException: Invalid name 'wpgadget-Special:WhatLinksHere_action_links' passed to HTMLFormField::__construct
exception.trace
from /srv/mediawiki/php-1.38.0-wmf.3/includes/htmlform/HTMLFormField.php(440)
#0 /srv/mediawiki/php-1.38.0-wmf.3/includes/htmlform/HTMLForm.php(547): HTMLFormField->__construct(array)
#1 /srv/mediawiki/php-1.38.0-wmf.3/includes/preferences/DefaultPreferencesFactory.php(283): HTMLForm::loadInputFromParameters(string, array, HTMLForm)
#2 /srv/mediawiki/php-1.38.0-wmf.3/includes/preferences/DefaultPreferencesFactory.php(250): MediaWiki\Preferences\DefaultPreferencesFactory->loadPreferenceValues(User, DerivativeContext, array)
#3 /srv/mediawiki/php-1.38.0-wmf.3/extensions/GlobalPreferences/includes/GlobalPreferencesFactory.php(117): MediaWiki\Preferences\DefaultPreferencesFactory->getFormDescriptor(User, DerivativeContext)
#4 /srv/mediawiki/php-1.38.0-wmf.3/includes/api/ApiOptions.php(207): GlobalPreferences\GlobalPreferencesFactory->getFormDescriptor(User, DerivativeContext)
#5 /srv/mediawiki/php-1.38.0-wmf.3/includes/api/ApiOptions.php(114): ApiOptions->getPreferences()
#6 /srv/mediawiki/php-1.38.0-wmf.3/includes/api/ApiMain.php(1877): ApiOptions->execute()
#7 /srv/mediawiki/php-1.38.0-wmf.3/includes/api/ApiMain.php(856): ApiMain->executeAction()
#8 /srv/mediawiki/php-1.38.0-wmf.3/includes/api/ApiMain.php(827): ApiMain->executeActionWithErrorHandling()
#9 /srv/mediawiki/php-1.38.0-wmf.3/api.php(90): ApiMain->execute()
#10 /srv/mediawiki/php-1.38.0-wmf.3/api.php(45): wfApiMain()
#11 /srv/mediawiki/w/api.php(3): require(string)
#12 {main}
Impact

These started to accumulate from urwiki immediately after deploy of 1.38.0-wmf.3 (T281167) to all wikis.

Notes

@Krinkle mentions that gadgets have been refactored recently, and colon in title of gadget on urwiki may be relevant.

Event Timeline

I believe to unblock the train we can revert the patch I referenced and re-work it later. Revert will not an introduce a regression of this caliber. But I'll leave the ultimate decision to the patch author and reviewer.

I'll take that arm and raise you my own, it's caused by the other change we made to gadgets this week:

https://www.mediawiki.org/wiki/MediaWiki_1.38/wmf.3/Changelog#Gadgets

Locally reproduced by creating the following:

MediaWIki Gadgets-definition
* foo:quux[ResourceLoader]|quux.js

And then loading Special:Preferences, which fails.

Then in git log, narrowing down with git reset --hard <hash> the last 4 commits until it doesn't fail.

https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Gadgets/+/724534

I believe to unblock the train we can revert the patch I referenced and re-work it later. […]

It looks like this change actually didn't make this week's branch cut :)

Change 727491 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/Gadgets@master] Revert \"Make each gadget a separate preference, instead of one huge multiselect\"

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

Change 727492 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/Gadgets@wmf/1.38.0-wmf.3] Revert \"Make each gadget a separate preference, instead of one huge multiselect\"

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

Change 727491 merged by jenkins-bot:

[mediawiki/extensions/Gadgets@master] Revert \"Make each gadget a separate preference, instead of one huge multiselect\"

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

Change 727492 merged by jenkins-bot:

[mediawiki/extensions/Gadgets@wmf/1.38.0-wmf.3] Revert \"Make each gadget a separate preference, instead of one huge multiselect\"

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

Sorry about that. I've submitted patch to fix the underlying issue at T126962.