Page MenuHomePhabricator

Make ConfigsFetcher invalidate the cache and stash independently
Closed, ResolvedPublic3 Estimated Story Points

Description

  1. There are two flaws in the design of the cache/stash update strategy:
    1. <snip />
    2. We only invalidate the cache if the value of the stash is out of date. Therefore, it's possible that an invalid/out of date value could get stuck in the cache as long as the value in the stash is up to date (e.g. a new experiment is configured in Test Kitchen UI). If the maintenance script doesn't invalidate the cache, it should be updated on a cache miss followed by a read from the stash.

AC

  • ConfigsFetcher#updateConfigs() checks whether the cached value is out of date and, if so, updates it
  • ConfigsFetcher#updateConfigs() checks whether the stashed value is out of date and, if so, updates it
  • Test by taking the current configuration from the stash, adding a fake experiment, writing that to the cache and watch for it to be invalidated & removed in about a minute.

Event Timeline

JVanderhoop-WMF moved this task from Incoming to READY TO GROOM on the Test Kitchen board.
JVanderhoop-WMF subscribed.

We should do this before we ship the next update to the cache version

KReid-WMF set the point value for this task to 3.Apr 30 2026, 3:37 PM
KReid-WMF moved this task from READY TO GROOM to Backlog on the Test Kitchen board.

Change #1281481 had a related patch set uploaded (by Phuedx; author: Phuedx):

[mediawiki/extensions/TestKitchen@master] ConfigsFetcher: Make ConfigsFetcher multi-DC compatible

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

Change #1281481 merged by jenkins-bot:

[mediawiki/extensions/TestKitchen@master] ConfigsFetcher: Make ConfigsFetcher multi-DC compatible

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