Page MenuHomePhabricator

Special:GlobalContributions/<ip> encounters an error if temporary accounts are not known
Closed, ResolvedPublic

Description

Background

Special:GlobalContributions/<ip> shows contributions from temporary account using the IP address <ip>.

If temporary accounts are not known on a wiki, it encounters the following error:

BadMethodCallException: MediaWiki\User\TempUser\RealTempUserConfig::getMatchCondition is disabled

Backtrace:

from /var/www/html/mediawiki/core/includes/User/TempUser/RealTempUserConfig.php(197)
#0 /var/www/html/mediawiki/extensions/CheckUser/src/GlobalContributions/GlobalContributionsPager.php(481): MediaWiki\User\TempUser\RealTempUserConfig->getMatchCondition()
#1 /var/www/html/mediawiki/core/includes/Pager/ContributionsPager.php(380): MediaWiki\CheckUser\GlobalContributions\GlobalContributionsPager->getRevisionQuery()
#2 /var/www/html/mediawiki/extensions/CheckUser/src/GlobalContributions/GlobalContributionsPager.php(321): MediaWiki\Pager\ContributionsPager->getQueryInfo()
#3 /var/www/html/mediawiki/core/includes/Pager/IndexPager.php(258): MediaWiki\CheckUser\GlobalContributions\GlobalContributionsPager->reallyDoQuery()
#4 /var/www/html/mediawiki/extensions/CheckUser/src/GlobalContributions/GlobalContributionsPager.php(231): MediaWiki\Pager\IndexPager->doQuery()
#5 /var/www/html/mediawiki/core/includes/Pager/IndexPager.php(595): MediaWiki\CheckUser\GlobalContributions\GlobalContributionsPager->doQuery()
#6 /var/www/html/mediawiki/core/includes/SpecialPage/ContributionsSpecialPage.php(364): MediaWiki\Pager\IndexPager->getBody()
#7 /var/www/html/mediawiki/core/includes/PoolCounter/PoolCounterWorkViaCallback.php(68): MediaWiki\SpecialPage\ContributionsSpecialPage->MediaWiki\SpecialPage\{closure}()
#8 /var/www/html/mediawiki/core/includes/PoolCounter/PoolCounterWork.php(159): MediaWiki\PoolCounter\PoolCounterWorkViaCallback->doWork()
#9 /var/www/html/mediawiki/core/includes/SpecialPage/ContributionsSpecialPage.php(384): MediaWiki\PoolCounter\PoolCounterWork->execute()
#10 /var/www/html/mediawiki/extensions/CheckUser/src/GlobalContributions/SpecialGlobalContributions.php(116): MediaWiki\SpecialPage\ContributionsSpecialPage->execute()
#11 /var/www/html/mediawiki/core/includes/SpecialPage/SpecialPage.php(711): MediaWiki\CheckUser\GlobalContributions\SpecialGlobalContributions->execute()
#12 /var/www/html/mediawiki/core/includes/SpecialPage/SpecialPageFactory.php(1744): MediaWiki\SpecialPage\SpecialPage->run()
#13 /var/www/html/mediawiki/core/includes/Actions/ActionEntryPoint.php(504): MediaWiki\SpecialPage\SpecialPageFactory->executePath()
#14 /var/www/html/mediawiki/core/includes/Actions/ActionEntryPoint.php(144): MediaWiki\Actions\ActionEntryPoint->performRequest()
#15 /var/www/html/mediawiki/core/includes/MediaWikiEntryPoint.php(181): MediaWiki\Actions\ActionEntryPoint->execute()
#16 /var/www/html/mediawiki/core/index.php(44): MediaWiki\MediaWikiEntryPoint->run()
#17 {main}
Impact

This should not impact WMF, since GlobalContributions is only used on metawiki, which has temporary accounts enabled.

Event Timeline

mszwarc changed the task status from Open to In Progress.Dec 22 2025, 1:11 PM
mszwarc claimed this task.
mszwarc moved this task from Backlog to In Progress on the CheckUser-GlobalContributions board.

I was able to reproduce it using the following configuration:

  • $wgAutoCreateTempUser['known'] = false;
  • $wgAutoCreateTempUser['enabled'] = false;
  • $wgCheckUserGlobalContributionsCentralWikiId = $wgDBname; – without it, GC is not available when temp. accounts are disabled

Then, querying an IP range (e.g., Special:GlobalContributions/127.0.0.1/24) results in an error but querying for a single IP doesn't (Special:GlobalContributions/127.0.0.1).

Given that GlobalContributions doesn't seem to be developed for such a usecase, I've changed the registration conditions for the special page, so that it'll be unavailable in the outlined scenario.

Change #1220337 had a related patch set uploaded (by Mszwarc; author: Mszwarc):

[mediawiki/extensions/CheckUser@master] GC: Enable on central wiki only if temp. accounts are known

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

Change #1220337 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] GC: Enable on central wiki only if temp. accounts are known

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