Page MenuHomePhabricator

AbuseFilterBlockTest::testRevert fails for GrowthExperiments builds
Closed, ResolvedPublic

Description

First noticed in https://gerrit.wikimedia.org/r/c/mediawiki/extensions/GrowthExperiments/+/656370, see build https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php72-noselenium-docker/57505/console

There were 3 errors:
09:32:31 
09:32:31 1) AbuseFilterBlockTest::testRevert with data set "not blocked by AF user" (class@anonymous/workspace/src/extensions/AbuseFilter/tests/phpunit/AbuseFilterBlockTest.php0x7fbea9a83f66 Object (...), null, false)
09:32:31 Wikimedia\Assert\ParameterTypeException: Bad value for parameter $localDomainId: must be a string
09:32:31 
09:32:31 /workspace/src/vendor/wikimedia/assert/src/Assert.php:105
09:32:31 /workspace/src/includes/externalstore/ExternalStoreFactory.php:37
09:32:31 /workspace/src/includes/ServiceWiring.php:421
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:750
09:32:31 /workspace/src/includes/ServiceWiring.php:408
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:742
09:32:31 /workspace/src/includes/ServiceWiring.php:179
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:533
09:32:31 /workspace/src/includes/ServiceWiring.php:1190
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:1228
09:32:31 /workspace/src/includes/ServiceWiring.php:1174
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:1220
09:32:31 /workspace/src/includes/ServiceWiring.php:1160
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:1204
09:32:31 /workspace/src/extensions/GrowthExperiments/ServiceWiring.php:67
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:424
09:32:31 /workspace/src/vendor/wikimedia/object-factory/src/ObjectFactory.php:209
09:32:31 /workspace/src/vendor/wikimedia/object-factory/src/ObjectFactory.php:150
09:32:31 /workspace/src/includes/HookContainer/HookContainer.php:468
09:32:31 /workspace/src/includes/HookContainer/HookContainer.php:159
09:32:31 /workspace/src/includes/HookContainer/HookRunner.php:2601
09:32:31 /workspace/src/includes/cache/MessageCache.php:929
09:32:31 /workspace/src/includes/language/Message.php:1294
09:32:31 /workspace/src/includes/language/Message.php:851
09:32:31 /workspace/src/includes/language/Message.php:943
09:32:31 /workspace/src/includes/title/MalformedTitleException.php:51
09:32:31 /workspace/src/includes/title/MediaWikiTitleCodec.php:346
09:32:31 /workspace/src/includes/title/MediaWikiTitleCodec.php:174
09:32:31 /workspace/src/includes/user/UserNameUtils.php:279
09:32:31 /workspace/src/includes/user/UserFactory.php:88
09:32:31 /workspace/src/includes/block/BlockUtils.php:121
09:32:31 /workspace/src/includes/block/AbstractBlock.php:343
09:32:31 /workspace/src/includes/block/AbstractBlock.php:423
09:32:31 /workspace/src/includes/block/AbstractBlock.php:117
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:102
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:469
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:300
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:881
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:850
09:32:31 /workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/Block.php:70
09:32:31 /workspace/src/extensions/AbuseFilter/tests/phpunit/AbuseFilterBlockTest.php:179
09:32:31 /workspace/src/tests/phpunit/MediaWikiIntegrationTestCase.php:446
09:32:31 /workspace/src/maintenance/doMaintenance.php:106
09:32:31 === Logs generated by test case
09:32:31 [objectcache] [debug] MainWANObjectCache using store {class} {"class":"EmptyBagOStuff"}
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [objectcache] [debug] MainWANObjectCache using store {class} {"class":"EmptyBagOStuff"}
09:32:31 [MessageCache] [debug] MessageCache using store {class} {"class":"HashBagOStuff"}
09:32:31 ===
09:32:31 
09:32:31 2) AbuseFilterBlockTest::testRevert with data set "cannot delete block" (class@anonymous/workspace/src/extensions/AbuseFilter/tests/phpunit/AbuseFilterBlockTest.php0x7fbea9a83f66 Object (...), Mock_DatabaseBlockStore_6f606b33 Object (...), false)
09:32:31 Wikimedia\Assert\ParameterTypeException: Bad value for parameter $localDomainId: must be a string
09:32:31 
09:32:31 /workspace/src/vendor/wikimedia/assert/src/Assert.php:105
09:32:31 /workspace/src/includes/externalstore/ExternalStoreFactory.php:37
09:32:31 /workspace/src/includes/ServiceWiring.php:421
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:750
09:32:31 /workspace/src/includes/ServiceWiring.php:408
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:742
09:32:31 /workspace/src/includes/ServiceWiring.php:179
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:533
09:32:31 /workspace/src/includes/ServiceWiring.php:1190
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:1228
09:32:31 /workspace/src/includes/ServiceWiring.php:1174
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:1220
09:32:31 /workspace/src/includes/ServiceWiring.php:1160
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:1204
09:32:31 /workspace/src/extensions/GrowthExperiments/ServiceWiring.php:67
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:424
09:32:31 /workspace/src/vendor/wikimedia/object-factory/src/ObjectFactory.php:209
09:32:31 /workspace/src/vendor/wikimedia/object-factory/src/ObjectFactory.php:150
09:32:31 /workspace/src/includes/HookContainer/HookContainer.php:468
09:32:31 /workspace/src/includes/HookContainer/HookContainer.php:159
09:32:31 /workspace/src/includes/HookContainer/HookRunner.php:2601
09:32:31 /workspace/src/includes/cache/MessageCache.php:929
09:32:31 /workspace/src/includes/language/Message.php:1294
09:32:31 /workspace/src/includes/language/Message.php:851
09:32:31 /workspace/src/includes/language/Message.php:943
09:32:31 /workspace/src/includes/title/MalformedTitleException.php:51
09:32:31 /workspace/src/includes/title/MediaWikiTitleCodec.php:346
09:32:31 /workspace/src/includes/title/MediaWikiTitleCodec.php:174
09:32:31 /workspace/src/includes/user/UserNameUtils.php:279
09:32:31 /workspace/src/includes/user/UserFactory.php:88
09:32:31 /workspace/src/includes/block/BlockUtils.php:121
09:32:31 /workspace/src/includes/block/AbstractBlock.php:343
09:32:31 /workspace/src/includes/block/AbstractBlock.php:423
09:32:31 /workspace/src/includes/block/AbstractBlock.php:117
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:102
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:469
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:300
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:881
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:850
09:32:31 /workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/Block.php:70
09:32:31 /workspace/src/extensions/AbuseFilter/tests/phpunit/AbuseFilterBlockTest.php:179
09:32:31 /workspace/src/tests/phpunit/MediaWikiIntegrationTestCase.php:446
09:32:31 /workspace/src/maintenance/doMaintenance.php:106
09:32:31 === Logs generated by test case
09:32:31 [objectcache] [debug] MainWANObjectCache using store {class} {"class":"EmptyBagOStuff"}
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [objectcache] [debug] MainWANObjectCache using store {class} {"class":"EmptyBagOStuff"}
09:32:31 [MessageCache] [debug] MessageCache using store {class} {"class":"HashBagOStuff"}
09:32:31 ===
09:32:31 
09:32:31 3) AbuseFilterBlockTest::testRevert with data set "succeed" (class@anonymous/workspace/src/extensions/AbuseFilter/tests/phpunit/AbuseFilterBlockTest.php0x7fbea9a83f66 Object (...), Mock_DatabaseBlockStore_6f606b33 Object (...), true)
09:32:31 Wikimedia\Assert\ParameterTypeException: Bad value for parameter $localDomainId: must be a string
09:32:31 
09:32:31 /workspace/src/vendor/wikimedia/assert/src/Assert.php:105
09:32:31 /workspace/src/includes/externalstore/ExternalStoreFactory.php:37
09:32:31 /workspace/src/includes/ServiceWiring.php:421
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:750
09:32:31 /workspace/src/includes/ServiceWiring.php:408
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:742
09:32:31 /workspace/src/includes/ServiceWiring.php:179
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:533
09:32:31 /workspace/src/includes/ServiceWiring.php:1190
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:1228
09:32:31 /workspace/src/includes/ServiceWiring.php:1174
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:1220
09:32:31 /workspace/src/includes/ServiceWiring.php:1160
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/includes/MediaWikiServices.php:1204
09:32:31 /workspace/src/extensions/GrowthExperiments/ServiceWiring.php:67
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:447
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:416
09:32:31 /workspace/src/vendor/wikimedia/services/src/ServiceContainer.php:424
09:32:31 /workspace/src/vendor/wikimedia/object-factory/src/ObjectFactory.php:209
09:32:31 /workspace/src/vendor/wikimedia/object-factory/src/ObjectFactory.php:150
09:32:31 /workspace/src/includes/HookContainer/HookContainer.php:468
09:32:31 /workspace/src/includes/HookContainer/HookContainer.php:159
09:32:31 /workspace/src/includes/HookContainer/HookRunner.php:2601
09:32:31 /workspace/src/includes/cache/MessageCache.php:929
09:32:31 /workspace/src/includes/language/Message.php:1294
09:32:31 /workspace/src/includes/language/Message.php:851
09:32:31 /workspace/src/includes/language/Message.php:943
09:32:31 /workspace/src/includes/title/MalformedTitleException.php:51
09:32:31 /workspace/src/includes/title/MediaWikiTitleCodec.php:346
09:32:31 /workspace/src/includes/title/MediaWikiTitleCodec.php:174
09:32:31 /workspace/src/includes/user/UserNameUtils.php:279
09:32:31 /workspace/src/includes/user/UserFactory.php:88
09:32:31 /workspace/src/includes/block/BlockUtils.php:121
09:32:31 /workspace/src/includes/block/AbstractBlock.php:343
09:32:31 /workspace/src/includes/block/AbstractBlock.php:423
09:32:31 /workspace/src/includes/block/AbstractBlock.php:117
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:102
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:469
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:300
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:881
09:32:31 /workspace/src/includes/block/DatabaseBlock.php:850
09:32:31 /workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/Block.php:70
09:32:31 /workspace/src/extensions/AbuseFilter/tests/phpunit/AbuseFilterBlockTest.php:179
09:32:31 /workspace/src/tests/phpunit/MediaWikiIntegrationTestCase.php:446
09:32:31 /workspace/src/maintenance/doMaintenance.php:106
09:32:31 === Logs generated by test case
09:32:31 [objectcache] [debug] MainWANObjectCache using store {class} {"class":"EmptyBagOStuff"}
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [localisation] [debug] LocalisationCache using store LCStoreNull []
09:32:31 [objectcache] [debug] MainWANObjectCache using store {class} {"class":"EmptyBagOStuff"}
09:32:31 [MessageCache] [debug] MessageCache using store {class} {"class":"HashBagOStuff"}
09:32:31 ===
09:32:31 
09:32:31 ERRORS!
09:32:31 Tests: 8922, Assertions: 28487, Errors: 3, Skipped: 62.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Change 656374 had a related patch set uploaded (by Kosta Harlan; owner: Kosta Harlan):
[mediawiki/extensions/AbuseFilter@master] tests: Mark testRevert as skipped due to unrelated failure

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

Or rather, by the interference between that patch and the PageSaveCompleteHook in GrowthExperiments.

The error is caused by $services->getDBLoadBalancer()->getLocalDomainID() returning null, since AbuseFilterBlockTest::testRevert() mocks it. Which is not an unreasonable thing to do; not sure how this kind of thing should be handled...

Change 656302 had a related patch set uploaded (by Kosta Harlan; owner: Kosta Harlan):
[mediawiki/extensions/AbuseFilter@wmf/1.36.0-wmf.26] tests: Mark testRevert as skipped due to unrelated failure

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

Change 656302 abandoned by Kosta Harlan:
[mediawiki/extensions/AbuseFilter@wmf/1.36.0-wmf.26] tests: Mark testRevert as skipped due to unrelated failure

Reason:
not needed in wmf.26

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

Change 656374 merged by jenkins-bot:
[mediawiki/extensions/AbuseFilter@master] tests: Mark testRevert as skipped due to unrelated failure

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

Heh, this test is crappy TBH. Unless DatabaseBlock::newFromTarget is made non-static and moved to a proper service, there's no real way to mock dependencies. So I'm just going to kill any hook handler during the test; I had already tried it locally because I was getting failures from MobileFrontend, although I eventually managed to fix it in another way.

Change 656390 had a related patch set uploaded (by Daimona Eaytoy; owner: Daimona Eaytoy):
[mediawiki/extensions/AbuseFilter@master] Re-enable AbuseFilterBlockTest::testRevert

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

Change 656390 merged by jenkins-bot:
[mediawiki/extensions/AbuseFilter@master] Re-enable AbuseFilterBlockTest::testRevert

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

Daimona claimed this task.
Daimona removed a project: Patch-For-Review.