Page MenuHomePhabricator

GrowthExperiments\Config\WikiPageConfig::getConfigData failed to load config from wiki: {error}
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
normalized_message
GrowthExperiments\Config\WikiPageConfig::getConfigData failed to load config from wiki: {error}
exception.trace
Impact

Not sure. It looks like the code related to the help panel is failing to load the preferred editor setting.

Notes

2,342 of these in the last 24 hours, starting with wmf.5

Details

Request URL
https://test.wikipedia.org/wiki/User_talk:{redacted}?markasread=*&markasreadwiki=*

Event Timeline

kostajh created this task.

Fixed with https://test.wikipedia.org/w/index.php?title=MediaWiki:GrowthExperimentsConfig.json&diff=prev&oldid=472318. Fortunately, this was an easy one.

Right now, the GEHelpPanelSuggestedEditsPreferredEditor variable can be in MediaWiki:GrowthExperimentsConfig.json, but it isn't in the form. At testwiki, it was in the file, becuase I ran the script that copies server config to the wiki file (all fields that can legitimately be there, not only the ones supported by the form). @kostajh changed the validation used for this variable in d0b646698bc42217f6caac4b2d2b48636eb3fa89, but did not change the config file used on testwiki. That resulted in the validation kicking in, ignoring the config, and logging errors to logstash.

Lessons learned from my POV:

  • The validation tells us quickly if the configuration is terribly malformed, either accidentally, or intentionally. That is good, because it means we quickly learn about cases when config is being ignored (which likely means the features are broken as well).
  • When we change the format used for one of the variables, it is critical to keep it backwards compatible. In this case, better way to do the change of format would be to keep validation as it was before, keeping the old value working. Once code is deployed, the configuration can be changed wherever it is used.

Action items:

  • We currently don't have a simple way to set a given variable to something on multiple wikis. We should write a script that will set given config key to a new value on all wikis on behalf of a system user, so we can change configuration easily (without opening 40+ config files and editing manaully). This is sorta doable with edit.php, but that script requires you to pass the new JSON with all its keys, not just one variable.

Logstash says it's no longer happening. Closing. T282756: Write a maintenance script to change config keys via CLI is a follow-up to this task.