Page MenuHomePhabricator

quibble-fullrun-extensions: Fails on ve.dm.MWGraphModel.static test.
Closed, ResolvedPublic

Description

Seen in https://integration.wikimedia.org/ci/job/integration-quibble-fullrun-extensions/44/console

  ext.graph.visualEditor
    ✔ ve.dm.MWGraphNode
    ✔ ve.ce.MWGraphNode
26 02 2022 17:35:04.988:DEBUG [middleware:source-files]: Requesting /load.php?modules=ext.graph.vega2&version=1viu2
26 02 2022 17:35:04.988:DEBUG [middleware:source-files]: Fetching /load.php
26 02 2022 17:35:04.988:DEBUG [proxy]: proxying request - /load.php?modules=ext.graph.vega2&version=1viu2 to 127.0.0.1:9413
26 02 2022 17:35:04.989:DEBUG [middleware:source-files]: Requesting /wiki/Special:JavaScriptTest/qunit/export
26 02 2022 17:35:04.989:DEBUG [middleware:source-files]: Fetching /wiki/Special:JavaScriptTest/qunit/export
26 02 2022 17:35:04.989:DEBUG [proxy]: proxying request - /wiki/Special:JavaScriptTest/qunit/export to 127.0.0.1:9413
26 02 2022 17:35:04.990:DEBUG [middleware:source-files]: Requesting /wiki/Special:JavaScriptTest/qunit/export
26 02 2022 17:35:04.990:DEBUG [middleware:source-files]: Fetching /wiki/Special:JavaScriptTest/qunit/export
26 02 2022 17:35:04.990:DEBUG [proxy]: proxying request - /wiki/Special:JavaScriptTest/qunit/export to 127.0.0.1:9413
26 02 2022 17:35:04.991:DEBUG [middleware:source-files]: Requesting /extensions/Graph/includes/ajax-loader.gif?b3af8
26 02 2022 17:35:04.991:DEBUG [middleware:source-files]: Fetching /extensions/Graph/includes/ajax-loader.gif
26 02 2022 17:35:04.991:DEBUG [proxy]: proxying request - /extensions/Graph/includes/ajax-loader.gif?b3af8 to 127.0.0.1:9413
    ✔ ve.ce.MWGraphNode.static
    ✔ ve.dm.MWGraphModel
    ✖ ve.dm.MWGraphModel.static
  testrunner-hooks-after
    ✔ `after` hook for module `testrunner-hooks` was executed
26 02 2022 17:35:05.060:DEBUG [Chrome Headless 90.0.4430.212 (Linux x86_64)]: EXECUTING -> CONNECTED
26 02 2022 17:35:05.063:DEBUG [launcher]: CAPTURED -> BEING_KILLED
26 02 2022 17:35:05.063:DEBUG [launcher]: BEING_KILLED -> BEING_FORCE_KILLED
26 02 2022 17:35:05.063:DEBUG [Chrome Headless 90.0.4430.212 (Linux x86_64)]: CONNECTED -> DISCONNECTED

Finished in 30.629 secs / 30.094 secs @ 17:35:05 GMT+0000 (Coordinated Universal Time)

SUMMARY:
✔ 1825 tests completed
ℹ 11 tests skipped
✖ 1 test failed

FAILED TESTS:
  ext.graph.visualEditor
    ✖ ve.dm.MWGraphModel.static
      Chrome Headless 90.0.4430.212 (Linux x86_64)
    The value provided to `assert.throws` in "ve.dm.MWGraphModel.static" was not a function.
        at Object.<anonymous> (http://localhost:9876/load.php?modules=mediawiki.language.testdata%7Cmediawiki.libs.guiders%2Cjpegmeta%2Cpluralruleparser%7Cmediawiki.messagePoster%2Cpulsatingdot%2Cqunit-testrunner%2Crouter%2Cstorage%2Ctemplate%2Ctoc%2Cuser%2Cutil%2Cviewport%2CvisibleTimeout%2Cwidgets%7Cmediawiki.page.gallery.styles%7Cmediawiki.page.ready%7Cmediawiki.page.watch.ajax%7Cmediawiki.rcfilters.filters.ui%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.special.recentchanges%7Cmediawiki.template.handlebars%2Cmustache%2Cvue%7Cmediawiki.ui.button%2Cicon%7Cmediawiki.widgets.AbandonEditDialog%2CCategoryMultiselectWidget%2CDateInputWidget%2CMediaSearch%2CTable%2CUserInputWidget%2Cstyles%7Cmediawiki.widgets.DateInputWidget.styles%7Cmobile.ooui.icons%7Cmobile.pagelist.styles%7Cmobile.pagesummary.styles%7Cmobile.placeholder.images%7Cmobile.startup%7Cmobile.startup.images%7Cmoment%2Coojs%2Coojs-router%2Coojs-ui%2Coojs-ui-core%2Coojs-ui-toolbars%2Coojs-ui-widgets%2Coojs-ui-windows%2Cpapaparse%2Crangefix%2Csinonjs%2Cspark-md5%2CtreeDiffer%2Cunicodejs%2CvalueFormatters%2CvalueParsers%7Cmw.config.values.wbDataTypes%2CwbRefTabsEnabled%2CwbRepo%2CwbSiteDetails%7Coojs-ui-core.icons%2Cstyles%7Coojs-ui-toolbars.icons%7Coojs-ui-widgets.icons%7Coojs-ui-windows.icons%7Coojs-ui.styles.icons-accessibility%2Cicons-alerts%2Cicons-content%2Cicons-editing-advanced%2Cicons-editing-citation%2Cicons-editing-core%2Cicons-editing-list%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-media%2Cicons-moderation%2Cicons-movement%2Cicons-user%2Cicons-wikimedia%2Cindicators%7Cskins.minerva.messageBox.styles%7Csocket.io%7Ctest.ArticlePlaceholder%2CCentralAuth%2CCite%2CEcho%2CEventLogging%2CFlow%2CGraph%2CGrowthExperiments%2CGuidedTour%2CMediaWiki%2CMinervaNeue%2CTemplateData%2CUniversalLanguageSelector%2CVisualEditor%2CWikiEditor%2CWikibaseClient%2CWikibaseLexeme%2CWikibaseRepository%2CWikimediaEvents%7Cutil.ContentLanguages%2CExtendable%2CMessageProvider%2CMessageProviders%2CNotifier%2ChighlightSubstring%2Cinherit&version=1wggu:1472:898)
        at runTest (node_modules/qunit/qunit/qunit.js:2496:35)
        at Test.run (node_modules/qunit/qunit/qunit.js:2479:9)
        at node_modules/qunit/qunit/qunit.js:2770:16
        at processTaskQueue (node_modules/qunit/qunit/qunit.js:2051:26)
        at node_modules/qunit/qunit/qunit.js:2055:13

Happens deterministically. Not sure why. The job in question is a CI check for Quibble using a set of cloned extensions, so it is similar to what is being run in "normal" CI for MediaWiki core/extensions/skins.

Event Timeline

Change 766595 had a related patch set uploaded (by Kosta Harlan; author: Kosta Harlan):

[integration/config@master] jjb: Skip Qunit tests on Quibble fullrun extensions

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

Change 766595 merged by jenkins-bot:

[integration/config@master] jjb: Skip Qunit tests on Quibble fullrun extensions

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

I can not reproduce with:

Graph + VisualEditor
php built in server
MySQL

Maybe it is a bad interaction with another extension or skin.

This shouldn't be possible with any valid set of repositories. Perhaps something got out of sync?

The error was due to a genuine bug in the Graph extension, fixed with change 765286 before the QUnit upgrade (change 765276) was merged (which started detecting this invalid input).

Krinkle renamed this task from QUnit: The value provided to `assert.throws` in "ve.dm.MWGraphModel.static" was not a function. to quibble-fullrun-extensions: Fails on ve.dm.MWGraphModel.static test..Feb 28 2022, 1:53 PM

This shouldn't be possible with any valid set of repositories. Perhaps something got out of sync?

The error was due to a genuine bug in the Graph extension, fixed with change 765286 before the QUnit upgrade that rejected this invalid input.

Ah. That explains why I couldn't find assert.throws anywhere in Graph. So, I'm not sure why the Quibble job is cloning the older version of Graph.

The Quibble build started on Feb 26, 2022 at 17:26 UTC. it does:

INFO:zuul.Cloner.mediawiki/extensions/Graph:Creating repo mediawiki/extensions/Graph from upstream https://gerrit.wikimedia.org/r/mediawiki/extensions/Graph
INFO:zuul.Cloner.mediawiki/extensions/Graph:upstream repo has branch master
INFO:zuul.Cloner.mediawiki/extensions/Graph:Prepared mediawiki/extensions/Graph repo with commit 99036a0aea715925a6f95b0bd54892fdba5d1927

That Graph is from l10n and got submitted on Feb 11th at 08:41 UTC https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Graph/+/761826

The next commit are:

Given the build happened AFTER those two commits got merged, they should have been included. There is something terribly broken :-\

The build has ZUUL_URL=git://contint2001.wikimedia.org (which is normal) and on that server we can still see the stall master branch:

$ git -C /srv/zuul/git/mediawiki/extensions/Graph rev-parse master
99036a0aea715925a6f95b0bd54892fdba5d1927

Quibble zuul.Cloner should not have fetched that stall branch but should have kept whatever is in Gerrit.

The issue is the job invokes integration/quibble script utils/ci-fullrun-extensions.sh which has:

TEST_REF=master
ZUUL_REF=$TEST_REF

That causes zuul.Cloner to fetch the master branch from the zuul-merger git repository. I am changing it to use quibble --branch=master which would force Quibble to use the master branch when cloning the repositories rather than the branch of the Quibble patch (which is also master so we could really just skip passing --branch).

Change 766774 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/quibble@master] ci-fullrun: do not use ZUUL_REF

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

Change 766787 had a related patch set uploaded (by Kosta Harlan; author: Kosta Harlan):

[integration/config@master] Revert \"jjb: Skip Qunit tests on Quibble fullrun extensions\"

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

Change 766774 merged by jenkins-bot:

[integration/quibble@master] ci-fullrun: do not use ZUUL_REF

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

Change 766787 merged by jenkins-bot:

[integration/config@master] Revert \"jjb: Skip Qunit tests on Quibble fullrun extensions\"

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

hashar claimed this task.

This shouldn't be possible with any valid set of repositories. Perhaps something got out of sync?

The error was due to a genuine bug in the Graph extension, fixed with change 765286 before the QUnit upgrade (change 765276) was merged (which started detecting this invalid input).

Thank you Timo!

There was another issue in the CI jobs triggering for integration/quibble which caused it to use stall branches. That got fixed as well.

Change 767706 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/quibble@master] release: Quibble 1.4.2

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

Change 767706 merged by jenkins-bot:

[integration/quibble@master] release: Quibble 1.4.2

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