Page MenuHomePhabricator

Spike: Audit MobileFrontend-related extensions for proper cache invalidation of page contents
Closed, ResolvedPublic

Description

We've now seen this issue twice, where content that depends upon expanded wikitext was cached using page_latest for cache invalidation instead of page_touched, meaning template and other updates aren't causing invalidation, leading to some not-so-nice vandalism staying around.

A/C

Audit the usage of cache in the following extensions to make sure any cache that stores expanded or rendered wikitext is using page_touched and not page_latest for caching:

  • Hovercards
  • MobileFrontend
  • QuickSurveys
  • RelatedArticles

Event Timeline

Legoktm raised the priority of this task from to Needs Triage.
Legoktm updated the task description. (Show Details)
Legoktm added subscribers: Legoktm, bd808, dr0ptp4kt.
KLans_WMF set Security to None.
ori raised the priority of this task from Medium to Unbreak Now!.Dec 18 2015, 10:27 PM
ori subscribed.

@dr0ptp4kt, I got this via IRC:

This might not be a useful report since it's already resolved, but I noticed that the mobile and desktop versions of https://en.wikipedia.org/wiki/Star_Wars:_The_Force_Awakens were pretty severely out of sync for a while last night. The mobile version was missing a bunch of new information despite repeated refreshes.

Jdlrobson renamed this task from Audit MobileFrontend-related extensions for proper cache invalidation of page contents to Spike: Audit MobileFrontend-related extensions for proper cache invalidation of page contents.Jul 28 2016, 8:53 PM
Jdlrobson added a project: Spike.
Jdlrobson moved this task from Incoming to Triaged but Future on the Web-Team-Backlog board.

Given issues like T145569, I suggest this audit be a high priority issue rather than normal technical debt.

If I'm not mistaken the source of {T145569} is enqueuement in the service layer, not in the origin. I believe @GWicke et al are looking into options. Agreed, though, this is important stuff as a general matter.

@bmansurov is Reading Web tech lead this Q2 (and probably Q3, it's typically a six month rotation) and will be working with the team on its prioritization of tech debt.

If I'm not mistaken the source of {T145569} is enqueuement in the service layer, not in the origin. I believe @GWicke et al are looking into options. Agreed, though, this is important stuff as a general matter.

Yeah sorry, I meant it in a general manner that "caching issues are causing UBNs" so I think it's more cause to be proactive so we don't need to be rushed and reactive later.

If I'm not mistaken the source of {T145569} is enqueuement in the service layer, not in the origin.

I don't have access to that task, so can't comment. Could anybody give me the needed access bits, or summarize here?

Audit the usage of cache in the following extensions to make sure any cache that stores expanded or rendered wikitext is using page_touched and not page_latest for caching:

I just spent 30 minutes looking through our extensions and the only place I can see which operates directly with wikitext is MobileFrontend and TextExtracts (both use getTouched). QuickSurveys operates with config and mediawiki messages; Popups and RelatedArticles just hit APIs.

I'm pretty confident reading web's extensions don't make use of getLatest / getTouched or directly page_touched or page_latest outside MobileFrontend but I'm not sure how to clearly convince you @Legoktm ... is there anything tangible you would like from us?

Jdlrobson claimed this task.