Page MenuHomePhabricator

Mismatched frontend JS and backend DOM should not be shipped
Open, Needs TriagePublic

Description

While resolving T235192 we discovered that pages were still broken even though we had ensured that old markup wasn't in the ParserCache.

This was due to old markup remaining in the varnish caches. We confirmed this by altering the urls slightly and then seeing the bug resolve in this case.

We should consider finding a permanent solution for this. Right now I see only the following three options:

  • Never ship mismatched front and backend code closer in time than the varnish cache limit (i.e. keep frontend code backwards compatible for at least 4 days)
  • Manually purge the varnish cache when we update in a breaking way (see: https://wikitech.wikimedia.org/wiki/Varnish#One-off_purges_(bans))
  • Use CDNCache update to do this in some automated way (see for example what URLShortner does /wikimedia/mediawiki-extensions-UrlShortener/blob/master/includes/UrlShortenerUtils.php#L277)