Page MenuHomePhabricator

WikEdDifferenceEngine: could not maintain backwards compatibility. Please use a SlotDiffRenderer, causing selenium tests to fail
Open, Needs TriagePublic

Description

https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php72-docker/62402/console

01:39:33 [0-1] 	ffmpeg exited with code 255 /workspace/log/Page-should-be-restorable.mp4
01:39:38 [0-1] Error in "Page should be undoable"
01:39:38 Can't call click on element with selector "#wpSave" because element wasn't found
01:39:38 [0-1] 
01:39:38 	Screenshot location: /workspace/log/Page-should-be-undoable.png 

01:39:57  "dot" Reporter:
01:39:57 ........F...........
01:39:57 
01:39:57 Spec Files:	 5 passed, 1 failed, 6 total (100% completed) in 00:00:37

Possible another error is hidden by this error, see T228364

Event Timeline

DannyS712 renamed this task from [WikEdDiff] Selenium tests failing to Selenium tests failing.Apr 23 2020, 9:31 PM

That is a nice extension https://www.mediawiki.org/wiki/Extension:WikEdDiff written by @Cacycle.

I have send a dummy Gerrit change to trigger the build. In the build artifacts https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php72-selenium-docker/22553/ there is a screenshot of the failure for the "Page should be undoable" scenario:

Page-should-be-undoable.png (888×1 px, 145 KB)

Which can be find in the attached mw-error.log file:

2020-12-21 10:06:18 dfaaa4630b67 wikidb: [01e23b41669971461a00a179] /index.php?action=edit&undoafter=10&undo=11&title=BeforeEach-name-0.8417447719201119-I%C3%B1t%C3%ABrn%C3%A2ti%C3%B4n%C3%A0liz%C3%A6ti%C3%B8n   Exception from line 1450 of /workspace/src/includes/diff/DifferenceEngine.php: WikEdDifferenceEngine: could not maintain backwards compatibility. Please use a SlotDiffRenderer.
#0 /workspace/src/includes/diff/DifferenceEngineSlotDiffRenderer.php(57): DifferenceEngine->generateContentDiffBody(WikitextContent, WikitextContent)
#1 /workspace/src/includes/diff/DifferenceEngine.php(1263): DifferenceEngineSlotDiffRenderer->getDiff(WikitextContent, WikitextContent)
#2 /workspace/src/includes/diff/DifferenceEngine.php(1168): DifferenceEngine->getDiffBody()
#3 /workspace/src/includes/EditPage.php(3749): DifferenceEngine->getDiff(string, string)
#4 /workspace/src/includes/EditPage.php(3659): EditPage->showDiff()
#5 /workspace/src/includes/EditPage.php(2976): EditPage->displayPreviewArea(string, boolean)
#6 /workspace/src/includes/EditPage.php(719): EditPage->showEditForm()
#7 /workspace/src/includes/actions/EditAction.php(71): EditPage->edit()
#8 /workspace/src/includes/MediaWiki.php(532): EditAction->show()
#9 /workspace/src/includes/MediaWiki.php(316): MediaWiki->performAction(Article, Title)
#10 /workspace/src/includes/MediaWiki.php(945): MediaWiki->performRequest()
#11 /workspace/src/includes/MediaWiki.php(548): MediaWiki->main()
#12 /workspace/src/index.php(53): MediaWiki->run()
#13 /workspace/src/index.php(46): wfIndexMain()
#14 {main}

WikEdDiff invokes DifferenceEngine::generateContentDiffBody() which is deprecated since 1.32 in favor of using SlotDiffRenderer (whatever it is)

The MediaWiki core change was https://gerrit.wikimedia.org/r/c/mediawiki/core/+/445200

I don't know anything about the diff engine though, it seems the extension has to be adjusted to support more recent MediaWiki versions.

Legoktm renamed this task from Selenium tests failing to WikEdDifferenceEngine: could not maintain backwards compatibility. Please use a SlotDiffRenderer, causing selenium tests to fail.Jan 3 2021, 7:16 PM
Legoktm subscribed.

Change 975375 had a related patch set uploaded (by Zoranzoki21; author: Zoranzoki21):

[integration/config@master] Zuul: [mediawiki/extensions/WikEdDiff] Don't use selenium for tests

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

Kizule moved this task from Working on to Watching on the User-Kizule board.

Change 975375 abandoned by Zoranzoki21:

[integration/config@master] Zuul: [mediawiki/extensions/WikEdDiff] Don't use selenium for tests

Reason:

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