Page MenuHomePhabricator

FlaggableWikiPage::preloadPreparedEdit() does not actually carry over the parser output, leading to double parses on save
Closed, ResolvedPublic

Description

I'm not sure exactly when this broke, presumably after some DerivedPageUpdater refactoring. The WikiPage::mPreparedEdit field is no longer populated, though FlaggedRevs still tries to use it...

Fixing the FlaggableWikiPage method seems too difficult given all of the MCR related changes, so it's probably best to use a different approach and just tack the additional flaggedrevs state onto the Title/WikiPage object itself, rather than a subclass that tries to copy some fields over.

Event Timeline

aaron triaged this task as Medium priority.Jan 7 2022, 1:16 AM

Change 754868 had a related patch set uploaded (by Ladsgroup; author: Amir Sarabadani):

[mediawiki/extensions/FlaggedRevs@master] Avoid double parsing

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

Change 754868 merged by jenkins-bot:

[mediawiki/extensions/FlaggedRevs@master] Avoid double parsing

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

Change 755406 had a related patch set uploaded (by Ladsgroup; author: Amir Sarabadani):

[mediawiki/extensions/FlaggedRevs@wmf/1.38.0-wmf.18] Avoid double parsing

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

Change 755406 abandoned by Ladsgroup:

[mediawiki/extensions/FlaggedRevs@wmf/1.38.0-wmf.18] Avoid double parsing

Reason:

I don't have time to babysit the deployment :( I let it go with the train

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

Change 762078 had a related patch set uploaded (by Ladsgroup; author: Amir Sarabadani):

[mediawiki/extensions/FlaggedRevs@master] Use ParserOutputAccess for accessing ParserOutput

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

Change 762078 merged by jenkins-bot:

[mediawiki/extensions/FlaggedRevs@master] Use ParserOutputAccess for accessing ParserOutput

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

Change 762925 had a related patch set uploaded (by Ladsgroup; author: Amir Sarabadani):

[mediawiki/extensions/FlaggedRevs@wmf/1.38.0-wmf.21] Use ParserOutputAccess for accessing ParserOutput

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

Change 762925 merged by jenkins-bot:

[mediawiki/extensions/FlaggedRevs@wmf/1.38.0-wmf.21] Use ParserOutputAccess for accessing ParserOutput

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

Mentioned in SAL (#wikimedia-operations) [2022-02-16T16:26:41Z] <ladsgroup@deploy1002> Synchronized php-1.38.0-wmf.21/extensions/FlaggedRevs/backend/FlaggedRevs.php: Backport: [[gerrit:762925|Use ParserOutputAccess for accessing ParserOutput (T283029)]] (duration: 00m 49s)

Change 763567 had a related patch set uploaded (by Ladsgroup; author: Amir Sarabadani):

[mediawiki/core@master] ParserOutputAccess: Check for latest revision when checking for cache

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

Change 763567 merged by jenkins-bot:

[mediawiki/core@master] ParserOutputAccess: Check for latest revision when checking for cache

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

Change 764837 had a related patch set uploaded (by Ladsgroup; author: Amir Sarabadani):

[mediawiki/core@wmf/1.38.0-wmf.23] ParserOutputAccess: Check for latest revision when checking for cache

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

Change 764838 had a related patch set uploaded (by Ladsgroup; author: Amir Sarabadani):

[mediawiki/core@wmf/1.38.0-wmf.22] ParserOutputAccess: Check for latest revision when checking for cache

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

Change 764837 merged by jenkins-bot:

[mediawiki/core@wmf/1.38.0-wmf.23] ParserOutputAccess: Check for latest revision when checking for cache

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

Change 764838 merged by jenkins-bot:

[mediawiki/core@wmf/1.38.0-wmf.22] ParserOutputAccess: Check for latest revision when checking for cache

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

Mentioned in SAL (#wikimedia-operations) [2022-02-23T04:33:51Z] <ladsgroup@deploy1002> Synchronized php-1.38.0-wmf.23/includes/page/ParserOutputAccess.php: Backport: [[gerrit:764837|ParserOutputAccess: Check for latest revision when checking for cache (T283029)]] (duration: 00m 51s)

Mentioned in SAL (#wikimedia-operations) [2022-02-23T04:36:16Z] <ladsgroup@deploy1002> Synchronized php-1.38.0-wmf.22/includes/page/ParserOutputAccess.php: Backport: [[gerrit:764838|ParserOutputAccess: Check for latest revision when checking for cache (T283029)]] (duration: 00m 50s)

This is done, the duplicate parses are not from flaggedrevs anymore. You can find flaggedrevs in duplicate parse dashboard but they are the "correct" trace and always coupled with something that needs fixing.