Page MenuHomePhabricator

Diff not implemented for Flow\Content\BoardContent
Closed, ResolvedPublicPRODUCTION ERROR

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

What does "broken" mean exactly?
I even get an exception on that page:
[WCR5bgpAMEcAAB-DrM8AAABQ] 2016-11-10 13:43:10: Erreur fatale de type « MWException »

2016-11-10 13:43:10 [WCR5bgpAMEcAAB-DrM8AAABQ] mw1236 frwikiquote 1.29.0-wmf.2 exception ERROR: [WCR5bgpAMEcAAB-DrM8AAABQ] /wiki/Sp%C3%A9cial:MobileDiff/246302   MWException from line 841 of /srv/mediawiki/php-1.29.0-wmf.2/includes/diff/DifferenceEngine.php: Diff not implemented for Flow\Content\BoardContent; override generateContentDiffBody to fix this. {"exception_id":"WCR5bgpAMEcAAB-DrM8AAABQ"} 
[Exception MWException] (/srv/mediawiki/php-1.29.0-wmf.2/includes/diff/DifferenceEngine.php:841) Diff not implemented for Flow\Content\BoardContent; override generateContentDiffBody to fix this.
  #0 /srv/mediawiki/php-1.29.0-wmf.2/includes/diff/DifferenceEngine.php(783): DifferenceEngine->generateContentDiffBody(Flow\Content\BoardContent, Flow\Content\BoardContent)
  #1 /srv/mediawiki/php-1.29.0-wmf.2/extensions/MobileFrontend/includes/specials/SpecialMobileDiff.php(243): DifferenceEngine->getDiffBody()
  #2 /srv/mediawiki/php-1.29.0-wmf.2/extensions/MobileFrontend/includes/specials/SpecialMobileDiff.php(136): SpecialMobileDiff->showDiff()
  #3 /srv/mediawiki/php-1.29.0-wmf.2/extensions/MobileFrontend/includes/specials/MobileSpecialPage.php(53): SpecialMobileDiff->executeWhenAvailable(string)
  #4 /srv/mediawiki/php-1.29.0-wmf.2/includes/specialpage/SpecialPage.php(522): MobileSpecialPage->execute(string)
  #5 /srv/mediawiki/php-1.29.0-wmf.2/includes/specialpage/SpecialPageFactory.php(584): SpecialPage->run(string)
  #6 /srv/mediawiki/php-1.29.0-wmf.2/includes/MediaWiki.php(283): SpecialPageFactory::executePath(Title, RequestContext)
  #7 /srv/mediawiki/php-1.29.0-wmf.2/includes/MediaWiki.php(861): MediaWiki->performRequest()
  #8 /srv/mediawiki/php-1.29.0-wmf.2/includes/MediaWiki.php(522): MediaWiki->main()
  #9 /srv/mediawiki/php-1.29.0-wmf.2/index.php(43): MediaWiki->run()
  #10 /srv/mediawiki/w/index.php(3): include(string)
  #11 {main}
Reedy renamed this task from mobile diff broken on flow pages to Diff not implemented for Flow\Content\BoardContent.Nov 10 2016, 2:07 PM
Reedy moved this task from Needs triage to Triaged on the Mobile board.

Is this link exposed anywhere, or did you get it by modifying the URL manually?

In the short term, we should make sure we're not linking to it anywhere.

For future testing (after the fix):

  • wikitext pages do not produce errors for Special:MobileDiff (at least I cannot find an instance)
  • the first revision (rev_id in revision table) does not produce the error; all subsequent rev_id (s) will display the error.
  • testwiki displays the above bug trace on the page
Krinkle added a subscriber: Krinkle.

Still seen.

Sample from Logstash
[{exception_id}] {exception_url}   MWException from line 895 of /srv/mediawiki/php-1.32.0-wmf.16/includes/diff/DifferenceEngine.php: 
Diff not implemented for Flow\Content\BoardContent; override generateContentDiffBody to fix this.

type: mediawiki
level: ERROR
channel: exception
reqId: W3bdxApAIDcAAIdWPDsAAACA
http_method: GET


#0 /srv/mediawiki/php-1.32.0-wmf.16/includes/diff/DifferenceEngine.php(803): DifferenceEngine->generateContentDiffBody(Flow\Content\BoardContent, Flow\Content\BoardContent)
#1 /srv/mediawiki/php-1.32.0-wmf.16/includes/api/ApiComparePages.php(138): DifferenceEngine->getDiffBody()
#2 /srv/mediawiki/php-1.32.0-wmf.16/includes/api/ApiMain.php(1579): ApiComparePages->execute()
#3 /srv/mediawiki/php-1.32.0-wmf.16/includes/api/ApiMain.php(533): ApiMain->executeAction()
#4 /srv/mediawiki/php-1.32.0-wmf.16/includes/api/ApiMain.php(504): ApiMain->executeActionWithErrorHandling()
#5 /srv/mediawiki/php-1.32.0-wmf.16/api.php(83): ApiMain->execute()
#6 /srv/mediawiki/w/api.php(3): include(string)
#7 {main}

URL:

https://www.mediawiki.org/w/api.php?action=compare&format=json&prop=ids%7Ctitle&fromrev=2528291&torelative=prev

The issue does not seem to be fixed - re-checked in wmf.4 and also checked T206090: Certain Special:MobileDiff urls fatal with "Bad value for parameter $old: must be a TextContent" which doesn't seem to be actually fixed either. Special:Mobilediff will display 'Error' page (as in per links in the task) for any revision of any flow-based page.

@Etonkovidova the fix was to display an error but not totally break the page display by throwing an uncaught exception. Before, if you visited those URLs, you'd get a fatal error from PHP. Since diff isn't implemented, we return an error but don't prevent the rest of the page from loading.

Etonkovidova claimed this task.

Thanks, @kostajh - Resolved then.

mmodell changed the subtype of this task from "Task" to "Production Error".Aug 28 2019, 11:10 PM