Page MenuHomePhabricator

OpenAPI spec validation test fails for SecurePoll and causes CI failures for other repos
Closed, ResolvedPublic

Description

Wikibase CI is currently broken, likely due to https://gerrit.wikimedia.org/r/c/mediawiki/core/+/860691

16:40:39   1) OpenAPI Self-Documentation
16:40:39        Conforms to the OpenAPI schema:
16:40:39      AssertionError: Swagger schema validation failed.
16:40:39   #/paths/~1securepoll~1set_translation~1{entityid}~1{language}/post/requestBody/content/application~1json/schema must be object
16:40:39   #/paths/~1securepoll~1set_translation~1{entityid}~1{language}/post/requestBody/content/application~1json/schema must be object
16:40:39   #/paths/~1securepoll~1set_translation~1{entityid}~1{language}/post/requestBody/content/application~1json/schema must match exactly one schema in oneOf
16:40:39   #/paths/~1securepoll~1set_translation~1{entityid}~1{language}/post/requestBody must have required property '$ref'
16:40:39   #/paths/~1securepoll~1set_translation~1{entityid}~1{language}/post/requestBody must match exactly one schema in oneOf
16:40:39 
16:40:39       at Context.<anonymous> (tests/api-testing/REST/Swagger.js:34:11)

https://integration.wikimedia.org/ci/job/mediawiki-quibble-apitests-vendor-php74-docker/49371/console

Event Timeline

Urbanecm_WMF triaged this task as High priority.EditedDec 5 2023, 10:16 AM
Urbanecm_WMF subscribed.

Not Wikibase specific. Blocks merges to GrowthExperiments and Flow as well. See https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Flow/+/979696.

Change 980346 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/core@master] api-testing: Skip a swagger test for REST

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

Indeed, it doesn't seem related to Wikibase. I can reproduce the failure locally when I load the SecurePoll extension.

Jakob_WMDE renamed this task from Emitting OpenAPI spec broken in Wikibase CI to OpenAPI spec validation test fails for SecurePoll and causes CI failures for other repos.Dec 5 2023, 10:26 AM

Change 980348 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/core@master] REST API: Use `unspecified` as a fallback to PARAM_SOURCE

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

I tried skipping the test in https://gerrit.wikimedia.org/r/980346, but it doesn't work. I get a different error instead:

11:24:18 mw-error.log:2023-12-05 10:22:52 2b1770da965a wikidb: [975ad5afe1f3a5d14ee5eb52] /rest.php/   PHP Notice: Undefined index: rest-param-source
11:24:18 mw-error.log:#0 /workspace/src/includes/Rest/Validator/Validator.php(247): MWExceptionHandler::handleError(integer, string, string, integer, array)
11:24:18 mw-error.log:#1 /workspace/src/includes/Rest/Validator/JsonBodyValidator.php(94): MediaWiki\Rest\Validator\Validator::getParameterSpec(string, array)
11:24:18 mw-error.log:#2 /workspace/src/includes/Rest/Handler.php(422): MediaWiki\Rest\Validator\JsonBodyValidator->getOpenAPISpec()
11:24:18 mw-error.log:#3 /workspace/src/includes/Rest/Handler.php(392): MediaWiki\Rest\Handler->getRequestSpec()
11:24:18 mw-error.log:#4 /workspace/src/includes/Rest/Handler/RootSpecHandler.php(95): MediaWiki\Rest\Handler->getOpenApiSpec()
11:24:18 mw-error.log:#5 /workspace/src/includes/Rest/Handler/RootSpecHandler.php(86): MediaWiki\Rest\Handler\RootSpecHandler->getRouteSpec(array)
11:24:18 mw-error.log:#6 /workspace/src/includes/Rest/Handler/RootSpecHandler.php(45): MediaWiki\Rest\Handler\RootSpecHandler->getPathsSpec()
11:24:18 mw-error.log:#7 /workspace/src/includes/Rest/SimpleHandler.php(38): MediaWiki\Rest\Handler\RootSpecHandler->run()
11:24:18 mw-error.log:#8 /workspace/src/includes/Rest/Router.php(561): MediaWiki\Rest\SimpleHandler->execute()
11:24:18 mw-error.log:#9 /workspace/src/includes/Rest/Router.php(452): MediaWiki\Rest\Router->executeHandler(MediaWiki\Rest\Handler\RootSpecHandler)
11:24:18 mw-error.log:#10 /workspace/src/includes/Rest/EntryPoint.php(195): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
11:24:18 mw-error.log:#11 /workspace/src/includes/Rest/EntryPoint.php(135): MediaWiki\Rest\EntryPoint->execute()
11:24:18 mw-error.log:#12 /workspace/src/rest.php(31): MediaWiki\Rest\EntryPoint::main()
11:24:18 mw-error.log:#13 {main}

This error comes from different parts of the original Core patch. Let's try https://gerrit.wikimedia.org/r/c/mediawiki/core/+/980348.

Change 979697 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/core@master] Revert "REST: Emit swagger spec"

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

This error comes from different parts of the original Core patch. Let's try https://gerrit.wikimedia.org/r/c/mediawiki/core/+/980348.

Fails as well... Out of ideas how to fix it, let's revert the breaking patch to unbreak CI and deal with the root issue later.

Change 980348 abandoned by Urbanecm:

[mediawiki/core@master] REST API: Use `unspecified` as a fallback to PARAM_SOURCE

Reason:

does not work

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

Change 980346 abandoned by Urbanecm:

[mediawiki/core@master] api-testing: Skip a swagger test for REST

Reason:

does not work

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

Reverting works (unsurprisingly). Self-merged to unbreak CI, going to leave the task open to follow-up on the root cause.

Change 979697 merged by jenkins-bot:

[mediawiki/core@master] Revert "REST: Emit swagger spec"

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

Change 979705 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):

[mediawiki/core@master] Re-apply "REST: Emit swagger spec"

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

Change 979705 merged by jenkins-bot:

[mediawiki/core@master] Re-apply "REST: Emit swagger spec"

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

daniel claimed this task.

IIRC this is fixed