Page MenuHomePhabricator

Automate testing CentralAuth patches with heterogenous deployment
Closed, DeclinedPublic

Description

CentralAuth uses a central wiki for logins the wiki where the login is started and the central login wiki communicate via the DB and other stores. Some of the hardest-to-catch errors happen when (in Wikimedia heterogeneous deployment) a change is deployed to some wikis but not to the central login wiki, or is deployed to the central login wiki but not to some other wikis, so that communication breaks. The effect of a partially-deployed patch is hard to reason about, and hard to test locally. Some sort of CI automation for it would be great.

The shape it would have to take would be something like this:

  • have two MediaWiki installs, one for a normal wiki, one for the central login wiki
  • check out CentralAuth master to the normal wiki and master + the patch to be tested to the central login wiki
  • run some basic Selenium tests (login, signup)
  • check out CentralAuth master + the patch to the normal wiki and master to the central login wiki
  • run the tests again

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

I guess we could also just run smoke tests in production and time them to happen after the train. Obviously less ideal (and we probably wouldn't want to test signups that way) but might be easier to set up.

CentralAuth uses a central wiki for logins the wiki where the login is started and the central login wiki communicate via the DB and other stores.

Since the introduction of SUL3, this is not the case anymore. Login-related redirect chains bounce between the origin wiki and auth.wikimedia.org, but auth.wikimedia.org resolves to the same wiki. The only flow which still involves going to a different wiki is edge login, which is an "add-on" to normal login and broken on Firefox and Safari already; it breaking further by accident is not a big enough deal to justify the investment into multi-install Selenium tests, IMO.

(A cross-wiki Selenium test in production, rather than CI, would probably be fairly easy. That can be done under T376562: Improve CentralAuth authentication browser tests.)

I understood this task to be principally aimed at the need to actually test CA before code ships to production. (See also T406582 for the more general wish.) Does the Declining of this task mean that that is no longer something the MW group cares about?