Page MenuHomePhabricator

RedisCategorySync doesn't work due to core change
Closed, ResolvedPublic

Description

Since c3e39d2b6d5f6895389bd9acb38c4dfa6b243890 in core, RedisCategorySync does not work because the category updates (onCategoryAfterPageAdded/onCategoryAfterPageRemoved) (can) run *after* onLinksUpdateComplete. The change was to improve performance by moving updateCategoryCounts to the end of the transaction.

I see two options:

  1. No longer batch the adds and removes. This may not be okay if Redis is fast enough.
  2. Find another hook for batching that is guaranteed to be late enough. There isn't an obvious good choice here, but I looked briefly.

Version: master
Severity: normal

Details

Reference
bz47482

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 1:25 AM
bzimport set Reference to bz47482.

Sorry, I meant "This may be okay if Redis is fast enough".

Good catch and good report. I'll only have time to look at this tomorrow, which I'll do unless you beat me to it. In the meantime, I'll do a single manual refresh of the categories to ensure they are not wildly out-of-sync with the database.

swalling wrote:

Just to confirm: after checking out Special:GettingStarted live on the site and refresh a dozen+ times, I'm not seeing any major regression in terms of missing or repeated list items (yet).

I manually synchronized a little over an hour ago, at 22:05 UTC.

Related URL: https://gerrit.wikimedia.org/r/60233 (Gerrit Change Ib073661c267cbabbe2ab2245224afd12b8784fca)

Steven, the core change is not deployed to any WMF sites yet (not even in a deployment branch). So we have some time to fix it.

(In reply to comment #6)

Steven, the core change is not deployed to any WMF sites yet (not even in a
deployment branch). So we have some time to fix it.

Gah. The bug title could have made that more explicit.

The change is on 1.22wmf2 sites, though not wmf1 sites.

swalling wrote:

(In reply to comment #8)

The change is on 1.22wmf2 sites, though not wmf1 sites.

Which means it will be on enwiki tomorrow after the 11AM-1PM deploy, which is where RedisCategorySync is being exposed to users.

https://gerrit.wikimedia.org/r/60233 (Gerrit Change Ib073661c267cbabbe2ab2245224afd12b8784fca) | change APPROVED and MERGED [by jenkins-bot]