Page MenuHomePhabricator

Internal error on Special:AllEvents
Closed, ResolvedPublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

Visit the following page
https://en.wikipedia.beta.wmflabs.org/wiki/Special:AllEvents?wpSearch=&wpMeetingType=1&wpStartDate=&wpEndDate=&limit=250

Note, if the limit is set to 31 or less then there is no error
If the limit is 32 or more then the internal error will occur

What happens?:

message
[Zn1pGoK92-DHSApvUnHDkwAAAEc] /wiki/Special:AllEvents?limit=250&wpEndDate=&wpMeetingType=1&wpSearch=&wpStartDate= TypeError: Return value of MediaWiki\Extension\CampaignEvents\MWEntity\CampaignsCentralUserLookup::getUserName() must be of the type string, bool returned
trace
from /srv/mediawiki/php-master/extensions/CampaignEvents/src/MWEntity/CampaignsCentralUserLookup.php(111)
#0 /srv/mediawiki/php-master/extensions/CampaignEvents/src/MWEntity/UserLinker.php(54): MediaWiki\Extension\CampaignEvents\MWEntity\CampaignsCentralUserLookup->getUserName(MediaWiki\Extension\CampaignEvents\MWEntity\CentralUser)
#1 /srv/mediawiki/php-master/extensions/CampaignEvents/src/MWEntity/UserLinker.php(78): MediaWiki\Extension\CampaignEvents\MWEntity\UserLinker->generateUserLink(MediaWiki\Extension\CampaignEvents\MWEntity\CentralUser)
#2 /srv/mediawiki/php-master/extensions/CampaignEvents/src/Pager/EventsListPager.php(284): MediaWiki\Extension\CampaignEvents\MWEntity\UserLinker->generateUserLinkWithFallback(MediaWiki\Extension\CampaignEvents\MWEntity\CentralUser, string)
#3 [internal function]: MediaWiki\Extension\CampaignEvents\Pager\EventsListPager->MediaWiki\Extension\CampaignEvents\Pager\{closure}(MediaWiki\Extension\CampaignEvents\Organizers\Organizer)
#4 /srv/mediawiki/php-master/extensions/CampaignEvents/src/Pager/EventsListPager.php(282): array_map(Closure, array)
#5 /srv/mediawiki/php-master/extensions/CampaignEvents/src/Pager/EventsListPager.php(255): MediaWiki\Extension\CampaignEvents\Pager\EventsListPager->getOrganizersText(stdClass)
#6 /srv/mediawiki/php-master/extensions/CampaignEvents/src/Pager/EventsListPager.php(162): MediaWiki\Extension\CampaignEvents\Pager\EventsListPager->formatRow(stdClass)
#7 /srv/mediawiki/php-master/includes/pager/IndexPager.php(601): MediaWiki\Extension\CampaignEvents\Pager\EventsListPager->getRow(stdClass)
#8 /srv/mediawiki/php-master/extensions/CampaignEvents/src/Special/SpecialAllEvents.php(114): MediaWiki\Pager\IndexPager->getBody()
#9 /srv/mediawiki/php-master/extensions/CampaignEvents/src/Special/SpecialAllEvents.php(42): MediaWiki\Extension\CampaignEvents\Special\SpecialAllEvents->showFormAndEvents()
#10 /srv/mediawiki/php-master/includes/specialpage/SpecialPage.php(719): MediaWiki\Extension\CampaignEvents\Special\SpecialAllEvents->execute(NULL)
#11 /srv/mediawiki/php-master/includes/specialpage/SpecialPageFactory.php(1694): MediaWiki\SpecialPage\SpecialPage->run(NULL)
#12 /srv/mediawiki/php-master/includes/actions/ActionEntryPoint.php(502): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext)
#13 /srv/mediawiki/php-master/includes/actions/ActionEntryPoint.php(145): MediaWiki\Actions\ActionEntryPoint->performRequest()
#14 /srv/mediawiki/php-master/includes/MediaWikiEntryPoint.php(200): MediaWiki\Actions\ActionEntryPoint->execute()
#15 /srv/mediawiki/php-master/index.php(58): MediaWiki\MediaWikiEntryPoint->run()
#16 /srv/mediawiki/w/index.php(3): require(string)
#17 {main}

What should have happened instead?:

User should see the Special:AllEvents page

Software version (on Special:Version page; skip for WMF-hosted wikis like Wikipedia):
1.43.0-alpha

Other information (browser name/version, screenshots, etc.):
Chrome

Screenshot 2024-06-27 at 8.31.08 AM.png (1×2 px, 844 KB)

Event Timeline

I found out that the event causing the exception is https://meta.wikimedia.beta.wmflabs.org/wiki/Special:EventDetails/119, whose organizer's account has been deleted. I still have to reproduce the actual exception though, and T368620 certainly doesn't help.

I have a fix for this and will push it shortly. What I still need to understand is why phan didn't flag the problem.

What I still need to understand is why phan didn't flag the problem.

Filed as https://github.com/phan/phan/issues/4863.

Change #1050392 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@master] Fix uncaught exception in AllEvents for deleted users

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

Change #1050392 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Fix uncaught exception in AllEvents for deleted users

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

✅ User should see the Special:AllEvents page

Screenshot 2024-07-01 at 10.08.09 AM.png (1×2 px, 338 KB)

This is working correctly now - marking as done / resolved.