Page MenuHomePhabricator

Various test failures in PHP 8.4 gate and submit job in Wikibase and PropertySuggester
Closed, ResolvedPublic

Description

The failure only occurs in the PHP 8.4 job. This is currently preventing us from merging a patch for T418774, which is blocking CI for multiple extensions.

10:07:21 There were 11 errors:
10:07:21 
10:07:21 1) PropertySuggester\Tests\PropertySuggester\UpdateTable\Importer\ImportContextTest::testCanImportFromFile
10:07:21 fputcsv(): the $escape parameter must be provided as its default value will change

...

10:07:21 There was 1 failure:
10:07:21 
10:07:21 1) Wikibase\Repo\Tests\RepoHooksTest::testOnContentModelCanBeUsedOn with data set "Wikitext on a page with an entity in a slot" ('wikitext', MediaWiki\Title\TitleValue Object (...), true)
10:07:21 Failed asserting that null is identical to 'slottedEntityType'.
10:07:21 
10:07:21 /workspace/src/extensions/Wikibase/repo/tests/phpunit/includes/RepoHooksTest.php:485
10:07:21 /workspace/src/extensions/Wikibase/repo/tests/phpunit/includes/RepoHooksTest.php:465

https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php84/549/console

Event Timeline

Jakob_WMDE renamed this task from Wikibase RepoHooksTest test failure in PHP 8.4 gate and submit job to Various test failures in PHP 8.4 gate and submit job in Wikibase and PropertySuggester.Mar 4 2026, 9:37 AM
Jakob_WMDE updated the task description. (Show Details)
hashar added subscribers: Jdforrester-WMF, hashar.

@Jdforrester-WMF turned on PHP 8.4 earlier this week (integration/config #1240989) which was T386108.

There was T415955: Ensure that all Wikimedia-deployed code passes PHP 8.4 CI to verify repositories passed CI by running the quibble-vendor-mysql-php84 job, which is the one reported in this task. It seems like it passed and that validated Wikibase as supporting PHP 8.4 new strictness.

There was T386113 about fgetcsv() and I guess that issue with fputcsv() was not caught somehow?

The problem is that we have failures in interdependent repos. We can't merge any fix for Wikibase because of the failure in WikibaseLexeme (T418774), and we can't fix Lexeme because of the issues mentioned in this ticket here.

Change #1247949 had a related patch set uploaded (by Arthur taylor; author: Arthur taylor):

[mediawiki/extensions/PropertySuggester@master] Provide escape parameter for fputcsv

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

Change #1247949 abandoned by Arthur taylor:

[mediawiki/extensions/PropertySuggester@master] Provide escape parameter for fputcsv

Reason:

abandoned in favour of I25e012bf9878f619d5788836fab8288a9c1a8f8a

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

The problem is that we have failures in interdependent repos. We can't merge any fix for Wikibase because of the failure in WikibaseLexeme (T418774), and we can't fix Lexeme because of the issues mentioned in this ticket here.

Oh I understand, well in this specific case, it is OK to submit one of the two changes and by pass CI. I am happy to do it on your behalf if that helps.

Sounds like it might unblock us - we just need to work out which patch needs to go first. How do we submit changes that have verification failures? (I haven't done that before)

Change #1247647 had a related patch set uploaded (by Hashar; author: Umherirrender):

[mediawiki/extensions/PropertySuggester@master] tests: Pass escape parameter to fputcsv() to unbreak php8.4 tests

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

Change #1247647 merged by Hashar:

[mediawiki/extensions/PropertySuggester@master] tests: Pass escape parameter to fputcsv() to unbreak php8.4 tests

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

hashar assigned this task to Umherirrender.
hashar added a subscriber: Umherirrender.

@ArthurTaylor reached out to me about this task via IRC #wikimedia-releng and we synced up there.

The issue was due to usage of fputcsv() in the MediaWiki-extensions-PropertySuggester extension. Fixed by @Umherirrender with https://gerrit.wikimedia.org/r/c/mediawiki/extensions/PropertySuggester/+/1247647

That was blocking over patches made to Wikibase related repositories since PropertySuggester is a dependency for a lot (all?) of them :]

Looks fixed now, thank you!

No, this is not resolved yet. There is still the failure in Wikibase itself which also exclusively happens in the 8.4 job:

Wikibase\Repo\Tests\RepoHooksTest::testOnContentModelCanBeUsedOn with data set "Wikitext on a page with an entity in a slot" ('wikitext', MediaWiki\Title\TitleValue Object (...), true)
Failed asserting that null is identical to 'slottedEntityType'.

We're having trouble debugging that without an 8.4-fpm dev image, but I'm looking into building one myself...

Change #1247981 had a related patch set uploaded (by Arthur taylor; author: Arthur taylor):

[mediawiki/extensions/PropertySuggester@master] Pass escape parameter to fgetcsv to unbreak php8.4 tests

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

Change #1247981 abandoned by Arthur taylor:

[mediawiki/extensions/PropertySuggester@master] Pass escape parameter to fgetcsv to unbreak php8.4 tests

Reason:

Abandoned in favour of I23fcb4587b6697bb7015cb7d28a557b1cf2be078

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

Change #1247978 had a related patch set uploaded (by Arthur taylor; author: Arendpieter):

[mediawiki/extensions/PropertySuggester@master] Fix fgetcsv() calls for PHP 8.4 compatibility

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

Change #1247978 merged by jenkins-bot:

[mediawiki/extensions/PropertySuggester@master] BasicImporter: Fix fgetcsv() calls for PHP 8.4 compatibility

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

Ok, the PropertySuggester changes are merged, and the RepoHooksTest::testOnContentModelCanBeUsedOn failure went away somehow. Wikibase CI is green again \o/

Change #1284765 had a related patch set uploaded (by Reedy; author: Umherirrender):

[mediawiki/extensions/PropertySuggester@REL1_45] tests: Pass escape parameter to fputcsv() to unbreak php8.4 tests

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

Change #1284766 had a related patch set uploaded (by Reedy; author: Umherirrender):

[mediawiki/extensions/PropertySuggester@REL1_44] tests: Pass escape parameter to fputcsv() to unbreak php8.4 tests

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

Change #1284767 had a related patch set uploaded (by Reedy; author: Umherirrender):

[mediawiki/extensions/PropertySuggester@REL1_43] tests: Pass escape parameter to fputcsv() to unbreak php8.4 tests

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

Change #1284765 merged by Reedy:

[mediawiki/extensions/PropertySuggester@REL1_45] tests: Pass escape parameter to fputcsv() to unbreak php8.4 tests

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

Change #1284766 merged by Reedy:

[mediawiki/extensions/PropertySuggester@REL1_44] tests: Pass escape parameter to fputcsv() to unbreak php8.4 tests

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

Change #1284767 merged by Reedy:

[mediawiki/extensions/PropertySuggester@REL1_43] tests: Pass escape parameter to fputcsv() to unbreak php8.4 tests

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

Change #1305464 had a related patch set uploaded (by Reedy; author: Arendpieter):

[mediawiki/extensions/PropertySuggester@REL1_45] BasicImporter: Fix fgetcsv() calls for PHP 8.4 compatibility

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

Change #1305465 had a related patch set uploaded (by Reedy; author: Arendpieter):

[mediawiki/extensions/PropertySuggester@REL1_44] BasicImporter: Fix fgetcsv() calls for PHP 8.4 compatibility

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

Change #1305466 had a related patch set uploaded (by Reedy; author: Arendpieter):

[mediawiki/extensions/PropertySuggester@REL1_43] BasicImporter: Fix fgetcsv() calls for PHP 8.4 compatibility

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

Change #1305465 merged by jenkins-bot:

[mediawiki/extensions/PropertySuggester@REL1_44] BasicImporter: Fix fgetcsv() calls for PHP 8.4 compatibility

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

Change #1305464 merged by Reedy:

[mediawiki/extensions/PropertySuggester@REL1_45] BasicImporter: Fix fgetcsv() calls for PHP 8.4 compatibility

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

Change #1305466 merged by Reedy:

[mediawiki/extensions/PropertySuggester@REL1_43] BasicImporter: Fix fgetcsv() calls for PHP 8.4 compatibility

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