Page MenuHomePhabricator

Error: Typed property MediaWiki\Extension\CampaignEvents\Event\EventRegistration::$participationOptions must not be accessed before initialization
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
message
Error: Typed property MediaWiki\Extension\CampaignEvents\Event\EventRegistration::$participationOptions must not be accessed before initialization
trace
	from /srv/mediawiki/php-1.45.0-wmf.4/extensions/CampaignEvents/src/Event/EventRegistration.php(245)
#0 /srv/mediawiki/php-1.45.0-wmf.4/extensions/CampaignEvents/src/EventPage/EventPageDecorator.php(448): MediaWiki\Extension\CampaignEvents\Event\EventRegistration->getParticipationOptions()
#1 /srv/mediawiki/php-1.45.0-wmf.4/extensions/CampaignEvents/src/EventPage/EventPageDecorator.php(406): MediaWiki\Extension\CampaignEvents\EventPage\EventPageDecorator->getEventInfoHeaderRow(MediaWiki\Extension\CampaignEvents\Event\ExistingEventRegistration, int)
#2 /srv/mediawiki/php-1.45.0-wmf.4/extensions/CampaignEvents/src/EventPage/EventPageDecorator.php(276): MediaWiki\Extension\CampaignEvents\EventPage\EventPageDecorator->getHeaderElement(MediaWiki\Extension\CampaignEvents\Event\ExistingEventRegistration, int)
#3 /srv/mediawiki/php-1.45.0-wmf.4/extensions/CampaignEvents/src/EventPage/EventPageDecorator.php(164): MediaWiki\Extension\CampaignEvents\EventPage\EventPageDecorator->addRegistrationHeader(MediaWiki\Page\WikiPage, MediaWiki\Extension\CampaignEvents\Event\ExistingEventRegistration)
#4 /srv/mediawiki/php-1.45.0-wmf.4/extensions/CampaignEvents/src/Hooks/Handlers/ArticleViewHeaderHandler.php(35): MediaWiki\Extension\CampaignEvents\EventPage\EventPageDecorator->decoratePage(MediaWiki\Page\WikiPage)
#5 /srv/mediawiki/php-1.45.0-wmf.4/includes/HookContainer/HookContainer.php(155): MediaWiki\Extension\CampaignEvents\Hooks\Handlers\ArticleViewHeaderHandler->onArticleViewHeader(MediaWiki\Page\Article, null, bool)
#6 /srv/mediawiki/php-1.45.0-wmf.4/includes/HookContainer/HookRunner.php(880): MediaWiki\HookContainer\HookContainer->run(string, array)
#7 /srv/mediawiki/php-1.45.0-wmf.4/includes/page/Article.php(708): MediaWiki\HookContainer\HookRunner->onArticleViewHeader(MediaWiki\Page\Article, null, bool)
#8 /srv/mediawiki/php-1.45.0-wmf.4/includes/page/Article.php(551): MediaWiki\Page\Article->generateContentOutput(MediaWiki\User\User, MediaWiki\Parser\ParserOptions, int, MediaWiki\Output\OutputPage, array)
#9 /srv/mediawiki/php-1.45.0-wmf.4/includes/actions/ViewAction.php(80): MediaWiki\Page\Article->view()
#10 /srv/mediawiki/php-1.45.0-wmf.4/includes/actions/ActionEntryPoint.php(728): MediaWiki\Actions\ViewAction->show()
#11 /srv/mediawiki/php-1.45.0-wmf.4/includes/actions/ActionEntryPoint.php(505): MediaWiki\Actions\ActionEntryPoint->performAction(MediaWiki\Page\Article, MediaWiki\Title\Title)
#12 /srv/mediawiki/php-1.45.0-wmf.4/includes/actions/ActionEntryPoint.php(143): MediaWiki\Actions\ActionEntryPoint->performRequest()
#13 /srv/mediawiki/php-1.45.0-wmf.4/includes/MediaWikiEntryPoint.php(198): MediaWiki\Actions\ActionEntryPoint->execute()
#14 /srv/mediawiki/php-1.45.0-wmf.4/index.php(58): MediaWiki\MediaWikiEntryPoint->run()
#15 /srv/mediawiki/w/index.php(3): require(string)
#16 {main}
Impact

Event pages fail to load and display this error instead. 423 occurrences in the last 3 hours (when the issue started).

Notes

The property name was changed in r1152266. My guess is that the cache (added for T392784) holds objects with the old property name that aren't therefore being unserialized properly.

Details

Request URL
https://meta.wikimedia.org/wiki/Event:Let%27s_Connect_Learning_Clinic_-_1Lib1Ref:_Tools,_Tactics_and_Innovation
Related Changes in Gerrit:

Event Timeline

Daimona triaged this task as Unbreak Now! priority.

There was a lot of stuff being renamed in T387493 (not just the patch that caused the regression), and I'd rather not revert all of that. Also, reverting won't fix the issue because anything that got cached after the train rollout (using the new property name) would then fail to unserialize with the old code. Bumping the cache version should be much simpler.

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

[mediawiki/extensions/CampaignEvents@master] Bump cache key version in EventStore

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

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

[mediawiki/extensions/CampaignEvents@wmf/1.45.0-wmf.4] Bump cache key version in EventStore

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

Change #1153725 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@wmf/1.45.0-wmf.4] Bump cache key version in EventStore

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

Mentioned in SAL (#wikimedia-operations) [2025-06-04T22:02:45Z] <ladsgroup@deploy1003> Started scap sync-world: Backport for [[gerrit:1153725|Bump cache key version in EventStore (T396075)]]

Mentioned in SAL (#wikimedia-operations) [2025-06-04T22:04:53Z] <ladsgroup@deploy1003> ladsgroup: Backport for [[gerrit:1153725|Bump cache key version in EventStore (T396075)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2025-06-04T22:16:40Z] <ladsgroup@deploy1003> Finished scap sync-world: Backport for [[gerrit:1153725|Bump cache key version in EventStore (T396075)]] (duration: 13m 54s)

Change #1153719 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Bump cache key version in EventStore

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