Page MenuHomePhabricator

CheckUser: Some private log entries appear to be missing title and page ID, causing exceptions
Closed, ResolvedPublic

Description

Summary

It seems that some rows in cu_private_event are not being parsed correctly (or were stored incorrectly) such that there is no valid title found, which causes an exception when the title is accessed

Technical details

An example log:

normalized_message
[{reqId}] {exception_url}   Error: Typed property MediaWiki\Logging\ManualLogEntry::$targetPage must not be accessed before initialization
exception.message
from /srv/mediawiki/php-1.46.0-wmf.20/includes/Logging/ManualLogEntry.php(520)
#0 /srv/mediawiki/php-1.46.0-wmf.20/includes/Logging/LogFormatter.php(668): MediaWiki\Logging\ManualLogEntry->getTarget()
#1 /srv/mediawiki/php-1.46.0-wmf.20/extensions/CheckUser/src/Logging/CheckUserPrivateEventLogFormatter.php(32): MediaWiki\Logging\LogFormatter->getMessageParameters()
#2 /srv/mediawiki/php-1.46.0-wmf.20/includes/Logging/LogFormatter.php(568): MediaWiki\Extension\CheckUser\Logging\CheckUserPrivateEventLogFormatter->getMessageParameters()
#3 /srv/mediawiki/php-1.46.0-wmf.20/extensions/CheckUser/src/Logging/CheckUserPrivateEventLogFormatter.php(89): MediaWiki\Logging\LogFormatter->getActionMessage()
#4 /srv/mediawiki/php-1.46.0-wmf.20/includes/Logging/LogFormatter.php(543): MediaWiki\Extension\CheckUser\Logging\CheckUserPrivateEventLogFormatter->getActionMessage()
#5 /srv/mediawiki/php-1.46.0-wmf.20/extensions/CheckUser/src/CheckUser/Pagers/CheckUserGetActionsPager.php(268): MediaWiki\Logging\LogFormatter->getActionText()
#6 /srv/mediawiki/php-1.46.0-wmf.20/extensions/CheckUser/src/CheckUser/Pagers/CheckUserGetActionsPager.php(193): MediaWiki\Extension\CheckUser\CheckUser\Pagers\CheckUserGetActionsPager->getActionText(MediaWiki\Logging\ManualLogEntry)
#7 /srv/mediawiki/php-1.46.0-wmf.20/includes/Pager/ReverseChronologicalPager.php(117): MediaWiki\Extension\CheckUser\CheckUser\Pagers\CheckUserGetActionsPager->formatRow(stdClass)
#8 /srv/mediawiki/php-1.46.0-wmf.20/includes/Pager/IndexPager.php(619): MediaWiki\Pager\ReverseChronologicalPager->getRow(stdClass)
#9 /srv/mediawiki/php-1.46.0-wmf.20/extensions/CheckUser/src/CheckUser/SpecialCheckUser.php(283): MediaWiki\Pager\IndexPager->getBody()
#10 /srv/mediawiki/php-1.46.0-wmf.20/includes/SpecialPage/SpecialPage.php(711): MediaWiki\Extension\CheckUser\CheckUser\SpecialCheckUser->execute(null)
#11 /srv/mediawiki/php-1.46.0-wmf.20/includes/SpecialPage/SpecialPageFactory.php(1712): MediaWiki\SpecialPage\SpecialPage->run(null)
#12 /srv/mediawiki/php-1.46.0-wmf.20/includes/Actions/ActionEntryPoint.php(504): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext)
#13 /srv/mediawiki/php-1.46.0-wmf.20/includes/Actions/ActionEntryPoint.php(144): MediaWiki\Actions\ActionEntryPoint->performRequest()
#14 /srv/mediawiki/php-1.46.0-wmf.20/includes/MediaWikiEntryPoint.php(180): MediaWiki\Actions\ActionEntryPoint->execute()
#15 /srv/mediawiki/php-1.46.0-wmf.20/index.php(44): MediaWiki\MediaWikiEntryPoint->run()
#16 /srv/mediawiki/w/index.php(3): require(string)
#17 {main}

Acceptance criteria

  • The cause of the logstash errors is determined and fixed

Event Timeline

Change #1264642 had a related patch set uploaded (by Arendpieter; author: Arendpieter):

[mediawiki/extensions/CheckUser@master] Fix exception when cu_private_event rows have no valid title or page ID

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

Change #1264642 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Fix exception when cu_private_event rows have no valid title or page ID

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

Change #1272675 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] CheckUserLookupUtils: Log when Badtitle used for log entry

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

Change #1272675 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] CheckUserLookupUtils: Log when missing target for log entry

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

Dreamy_Jazz updated the task description. (Show Details)

The fix from @Arendpieter and my follow up to add logging should address this issue for now. If the error appears in the logs, we can investigate each instance in a new ticket

Thanks for the fix!