Error
MediaWiki version: 1.35.0-wmf.27
Argument 1 passed to WikibaseQuality\ConstraintReport\Job\CheckConstraintsJob::setResultsSource() must be an instance of WikibaseQuality\ConstraintReport\Api\CachingResultsSource, instance of WikibaseQuality\ConstraintReport\Api\CheckingResultsSource given, called in /srv/mediawiki/php-1.35.0-wmf.27/extensions/WikibaseQualityConstraints/src/Job/CheckConstraintsJob.php on line 49
Impact
Moderate logspam, constraint check job effectively disabled on Test Wikidata.
Notes
Excerpt from CheckConstraintsJob::__construct():
$resultSource = ConstraintsServices::getResultsSource( MediaWikiServices::getInstance() ); '@phan-var CachingResultsSource $resultSource'; // This job should only ever be used when caching result sources are used. $this->setResultsSource( $resultSource );
However, the ServiceWiring.php contains some conditions under which constraint check results can’t be cached even if caching is enabled – see T244726: WikibaseQualityConstraints can’t cache constraint results in federated setups. In particular:
if ( $entitySource->getDatabaseName() !== false ) { LoggerFactory::getInstance( 'WikibaseQualityConstraints' )->warning( 'Cannot cache constraint check results for non-local source: ' . $entitySource->getSourceName() ); $cacheCheckConstraintsResults = false; break; }
And on Test Wikidata, for some reason:
lucaswerkmeister-wmde@mwmaint1002:~$ mwscript shell.php testwikidatawiki Psy Shell v0.10.2 (PHP 7.2.26-1+0~20191218.33+debian9~1.gbpb5a340+wmf1 — cli) by Justin Hileman >>> \Wikibase\Repo\WikibaseRepo::getDefaultInstance()->getEntitySourceDefinitions()->getSources()[0]->getDatabaseName() => "testwikidatawiki"
The entity source dbname is not false, but the actual dbname, misleading WikibaseQualityConstraints into believing that this is a federated wiki where constraint check results cannot be cached.