[go: up one dir, main page]

Page MenuHomePhabricator

EntitySchema CI broken due to UnDeserializableValue in StatementQuantityFieldTest
Closed, ResolvedPublic

Description

E.g. in this build (for this change):

There were 2 errors:

1) Wikibase\Search\Elastic\Tests\Fields\StatementQuantityFieldTest::testGetFieldData with data set "entity with statements but no qualifiers" (Wikibase\DataModel\Entity\Item Object (...), array())
TypeError: Argument 1 passed to MediaWikiIntegrationTestCase::{closure}() must be an instance of Wikibase\DataModel\Entity\EntityIdValue, instance of DataValues\UnDeserializableValue given, called in /workspace/src/extensions/WikibaseCirrusSearch/src/Fields/StatementsField.php on line 177

/workspace/src/extensions/Wikibase/repo/WikibaseRepo.datatypes.php:421
/workspace/src/extensions/WikibaseCirrusSearch/src/Fields/StatementsField.php:177
/workspace/src/extensions/WikibaseCirrusSearch/src/Fields/StatementsField.php:196
/workspace/src/extensions/WikibaseCirrusSearch/src/Fields/StatementsField.php:238
/workspace/src/extensions/WikibaseCirrusSearch/src/Fields/StatementQuantityField.php:77
/workspace/src/extensions/WikibaseCirrusSearch/tests/phpunit/Fields/StatementQuantityFieldTest.php:105
phpvfscomposer:///workspace/src/vendor/phpunit/phpunit/phpunit:106

2) Wikibase\Search\Elastic\Tests\Fields\StatementQuantityFieldTest::testGetFieldData with data set "entity with statements, one with a quantity qualifier" (Wikibase\DataModel\Entity\Item Object (...), array('P7=string|20'))
TypeError: Argument 1 passed to MediaWikiIntegrationTestCase::{closure}() must be an instance of Wikibase\DataModel\Entity\EntityIdValue, instance of DataValues\UnDeserializableValue given, called in /workspace/src/extensions/WikibaseCirrusSearch/src/Fields/StatementsField.php on line 177

/workspace/src/extensions/Wikibase/repo/WikibaseRepo.datatypes.php:421
/workspace/src/extensions/WikibaseCirrusSearch/src/Fields/StatementsField.php:177
/workspace/src/extensions/WikibaseCirrusSearch/src/Fields/StatementQuantityField.php:82
/workspace/src/extensions/WikibaseCirrusSearch/tests/phpunit/Fields/StatementQuantityFieldTest.php:105
phpvfscomposer:///workspace/src/vendor/phpunit/phpunit/phpunit:106

Presumably related to our work in T369149, though it’s not yet clear what the problem is. Annoyingly, I can’t reproduce the error locally.

Event Timeline

Change #1052304 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/WikibaseCirrusSearch@master] DNM: debug output

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

Change #1052299 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/EntitySchema@master] DNM: empty change to test CI

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

The undeserializable value looks like this:

object(DataValues\UnDeserializableValue)#14885 (3) {
  ["data":"DataValues\UnDeserializableValue":private]=>
  array(2) {
    ["entity-type"]=>
    string(4) "item"
    ["numeric-id"]=>
    int(42)
  }
  ["type":"DataValues\UnDeserializableValue":private]=>
  string(17) "wikibase-entityid"
  ["error":"DataValues\UnDeserializableValue":private]=>
  string(40) "Property data type lookup failed for: P2"
}

And indeed, if I temporarily delete P2 on my local wiki, I can reproduce the test failure. I assume this is because this test loads entities in a data provider, which is too early – we’re still running with the real services there. (If P2 was a non-item-type property on my wiki, I’d probably get a different kind of error.) See also for T332865 for other problems with data providers that do too much work.

Change #1052306 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/WikibaseCirrusSearch@master] StatementQuantityFieldTest: Don’t load entities in data provider

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

Change #1052299 abandoned by Lucas Werkmeister (WMDE):

[mediawiki/extensions/EntitySchema@master] DNM: empty change to test CI

Reason:

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

Change #1052304 abandoned by Lucas Werkmeister (WMDE):

[mediawiki/extensions/WikibaseCirrusSearch@master] DNM: debug output

Reason:

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

Change #1052306 merged by jenkins-bot:

[mediawiki/extensions/WikibaseCirrusSearch@master] StatementQuantityFieldTest: Don’t load entities in data provider

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