Page MenuHomePhabricator

Community Configuration: Create Emergency Shutdown option
Open, HighPublic

Description

Community configuration introduces an alternative config interface, which either fallbacks to MainConfig (when the requested config option is not managed by CommunityConfiguration) or loads a JSON blob from a wikipage (when the requested config option is managed by CommunityConfiguration), which is then used to determine the config option's value.

Even though we cache the wikipage after we load it, it is still a potentially expensive operation, that might go wrong. Since CommunityConfiguration is designed to be a hard dependency for its client extensions, we need to provide a way to disable anything potentially expensive in CommunityConfiguration.

This can be done by adding wgCommunityConfigurationEmergencyShutdown to MediaWiki-extensions-CommunityConfiguration, which would short-circuit MediaWikiConfigReader (the access class). That should make it possible to cut off all potentially dangerous codepaths, making it possible for us to shutoff all potentially dangerous codepaths in CommunityConfiguration.

Event Timeline

Change #1043801 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/CommunityConfiguration@master] Add Emergency Shutdown mode

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

Change #1043807 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] CommunityConfiguration: Do not break when Emergency Shutdown is enabled

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

Is this effectively part of the contingency plan from T350731: Community Configuration: Monitoring & Contingency plan?

Correct, this task is a followup of a conversation @KStoller-WMF and me had earlier this week.