Page MenuHomePhabricator

ArgumentCountError: Too few arguments to function MediaWiki\Extension\CommunityConfiguration\Validation\JsonSchemaValidator::__construct(), 2 passed in /srv/mediawiki/php-master/extensions/ReportIncident/src/Config/ReportIncidentConfigValidator.php on line 45 and exactly 3 expected
Closed, ResolvedPublic

Description

Seen on beta after the merge of https://gerrit.wikimedia.org/r/c/mediawiki/extensions/CommunityConfiguration/+/1131956:

Too few arguments to function MediaWiki\Extension\CommunityConfiguration\Validation\JsonSchemaValidator::__construct(), 2 passed in /srv/mediawiki/php-master/extensions/ReportIncident/src/Config/ReportIncidentConfigValidator.php on line 45 and exactly 3 expected
from /srv/mediawiki/php-master/extensions/CommunityConfiguration/src/Validation/JsonSchemaValidator.php(29)
#0 /srv/mediawiki/php-master/extensions/ReportIncident/src/Config/ReportIncidentConfigValidator.php(45): MediaWiki\Extension\CommunityConfiguration\Validation\JsonSchemaValidator->__construct(string, Wikimedia\Stats\BufferingStatsdDataFactory)
#1 /srv/mediawiki/php-master/vendor/wikimedia/object-factory/src/ObjectFactory.php(227): MediaWiki\Extension\ReportIncident\Config\ReportIncidentConfigValidator::factory(MediaWiki\Title\TitleParser, MediaWiki\Page\PageStore, Wikimedia\Stats\BufferingStatsdDataFactory, string)
#2 /srv/mediawiki/php-master/vendor/wikimedia/object-factory/src/ObjectFactory.php(149): Wikimedia\ObjectFactory\ObjectFactory::getObjectFromSpec(array, array)
#3 /srv/mediawiki/php-master/extensions/CommunityConfiguration/src/Validation/ValidatorFactory.php(73): Wikimedia\ObjectFactory\ObjectFactory->createObject(array, array)
#4 /srv/mediawiki/php-master/extensions/CommunityConfiguration/src/Provider/ConfigurationProviderFactory.php(138): MediaWiki\Extension\CommunityConfiguration\Validation\ValidatorFactory->newValidator(string, string, array)
#5 /srv/mediawiki/php-master/extensions/CommunityConfiguration/src/Provider/ConfigurationProviderFactory.php(165): MediaWiki\Extension\CommunityConfiguration\Provider\ConfigurationProviderFactory->constructProvider(string)
#6 /srv/mediawiki/php-master/extensions/CommunityConfiguration/src/Access/MediaWikiConfigReader.php(60): MediaWiki\Extension\CommunityConfiguration\Provider\ConfigurationProviderFactory->newProvider(string)
#7 /srv/mediawiki/php-master/extensions/CommunityConfiguration/src/Access/MediaWikiConfigReader.php(89): MediaWiki\Extension\CommunityConfiguration\Access\MediaWikiConfigReader->computeVariableToProviderMap()
#8 /srv/mediawiki/php-master/includes/libs/objectcache/BagOStuff.php(266): MediaWiki\Extension\CommunityConfiguration\Access\MediaWikiConfigReader->MediaWiki\Extension\CommunityConfiguration\Access\{closure}(int)
#9 /srv/mediawiki/php-master/extensions/CommunityConfiguration/src/Access/MediaWikiConfigReader.php(90): Wikimedia\ObjectCache\BagOStuff->getWithSetCallback(string, int, Closure)
#10 /srv/mediawiki/php-master/extensions/CommunityConfiguration/src/Access/MediaWikiConfigReader.php(139): MediaWiki\Extension\CommunityConfiguration\Access\MediaWikiConfigReader->getVariableToProviderMap()
#11 /srv/mediawiki/php-master/extensions/CommunityConfiguration/src/Access/MediaWikiConfigRouter.php(25): MediaWiki\Extension\CommunityConfiguration\Access\MediaWikiConfigReader->has(string)
#12 /srv/mediawiki/php-master/extensions/GrowthExperiments/includes/Config/MediaWikiConfigReaderWrapper.php(39): MediaWiki\Extension\CommunityConfiguration\Access\MediaWikiConfigRouter->get(string)
#13 /srv/mediawiki/php-master/extensions/GrowthExperiments/includes/Mentorship/Hooks/MentorHooks.php(289): GrowthExperiments\Config\MediaWikiConfigReaderWrapper->get(string)
#14 /srv/mediawiki/php-master/includes/HookContainer/HookContainer.php(155): GrowthExperiments\Mentorship\Hooks\MentorHooks->onUserGetRights(MediaWiki\User\User, array)
#15 /srv/mediawiki/php-master/includes/HookContainer/HookRunner.php(4364): MediaWiki\HookContainer\HookContainer->run(string, array)
#16 /srv/mediawiki/php-master/includes/Permissions/PermissionManager.php(1591): MediaWiki\HookContainer\HookRunner->onUserGetRights(MediaWiki\User\User, array)
#17 /srv/mediawiki/php-master/includes/Permissions/PermissionManager.php(1539): MediaWiki\Permissions\PermissionManager->getUserPermissions(MediaWiki\User\User)
#18 /srv/mediawiki/php-master/includes/Permissions/PermissionManager.php(1088): MediaWiki\Permissions\PermissionManager->userHasRight(MediaWiki\User\User, string)
#19 /srv/mediawiki/php-master/includes/Permissions/PermissionManager.php(533): MediaWiki\Permissions\PermissionManager->checkQuickPermissions(string, MediaWiki\User\User, MediaWiki\Permissions\PermissionStatus, string, bool, MediaWiki\Title\Title)
#20 /srv/mediawiki/php-master/includes/Permissions/PermissionManager.php(291): MediaWiki\Permissions\PermissionManager->getPermissionStatus(string, MediaWiki\User\User, MediaWiki\Title\Title, string, bool)
#21 /srv/mediawiki/php-master/includes/Permissions/UserAuthority.php(381): MediaWiki\Permissions\PermissionManager->userCan(string, MediaWiki\User\User, MediaWiki\Title\Title, string)
#22 /srv/mediawiki/php-master/includes/Permissions/UserAuthority.php(176): MediaWiki\Permissions\UserAuthority->internalCan(string, string, MediaWiki\Title\Title, null, bool)
#23 /srv/mediawiki/php-master/includes/user/User.php(3296): MediaWiki\Permissions\UserAuthority->probablyCan(string, MediaWiki\Title\Title, null)
#24 /srv/mediawiki/php-master/includes/page/Article.php(524): MediaWiki\User\User->probablyCan(string, MediaWiki\Title\Title)
#25 /srv/mediawiki/php-master/includes/actions/ViewAction.php(80): MediaWiki\Page\Article->view()
#26 /srv/mediawiki/php-master/includes/actions/ActionEntryPoint.php(728): MediaWiki\Actions\ViewAction->show()
#27 /srv/mediawiki/php-master/includes/actions/ActionEntryPoint.php(505): MediaWiki\Actions\ActionEntryPoint->performAction(MediaWiki\Page\Article, MediaWiki\Title\Title)
#28 /srv/mediawiki/php-master/includes/actions/ActionEntryPoint.php(143): MediaWiki\Actions\ActionEntryPoint->performRequest()
#29 /srv/mediawiki/php-master/includes/MediaWikiEntryPoint.php(202): MediaWiki\Actions\ActionEntryPoint->execute()
#30 /srv/mediawiki/php-master/index.php(58): MediaWiki\MediaWikiEntryPoint->run()
#31 /srv/mediawiki/w/index.php(3): require(string)
#32 {main}

Event Timeline

taavi triaged this task as Unbreak Now! priority.
Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Change #1132661 had a related patch set uploaded (by Michael Große; author: Michael Große):

[mediawiki/extensions/CommunityConfiguration@master] Revert "metrics: migrate to statslib"

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

Dreamy_Jazz subscribed.

Un-assigning per Growth saying they will work on this by reverting the change.

The error rate for this in beta is high enough that it is causing new deployments to fail. https://integration.wikimedia.org/ci/job/beta-scap-sync-world/200250/console

00:01:12.819 15:16:21 Finished sync-canaries (duration: 00m 08s)
00:01:12.821 15:16:21 Waiting 20 seconds for canary traffic...
00:01:33.017 15:16:41 Logstash checker Counted 191 error(s) in the last 20 seconds. The threshold is 10.
00:01:33.018 15:16:41 Top 1 errors:
00:01:33.018 [191 hits] ArgumentCountError: Too few arguments to function MediaWiki\Extension\CommunityConfiguration\Validation\JsonSchemaValidator::__construct(), 2 passed in /srv/mediawiki/php-master/extensions/ReportIncident/src/Config/ReportIncide
00:01:33.019 15:16:41 Scap cancelled

Change #1132661 merged by jenkins-bot:

[mediawiki/extensions/CommunityConfiguration@master] Revert "metrics: migrate to statslib"

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

Change #1132680 had a related patch set uploaded (by Dreamy Jazz; author: Michael Große):

[mediawiki/extensions/ReportIncident@master] refactor: use ValidatorFactory

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

The error rate for this in beta is high enough that it is causing new deployments to fail. https://integration.wikimedia.org/ci/job/beta-scap-sync-world/200250/console

[16:12]  <wmf-insecte> Yippee, build fixed!
[16:12]  <wmf-insecte> Project beta-scap-sync-world build #200255: FIXED in 6 min 55 sec: https://integration.wikimedia.org/ci/job/beta-scap-sync-world/200255/
Michael lowered the priority of this task from Unbreak Now! to High.Mar 31 2025, 4:36 PM
Michael subscribed.

Beta seems to be working again, and with @bd808 comment above, I think this can be lowered down a bit.

As a separate follow-up: would it make sense to add ReportIncident to the list of gated extensions in CI? That way, hopefully we can catch such things earlier.

Change #1132680 merged by jenkins-bot:

[mediawiki/extensions/ReportIncident@master] refactor: use ValidatorFactory

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

Dreamy_Jazz assigned this task to Michael.

I think we can resolve this given that the issue mentioned in the task description was solved and re-applying that patch that caused the issue is being done elsewhere.