In 8ae6f753509f760fd178210105de5140ac9a5f86, the CheckUserLookupUtils::getManualLogEntryFromRow method was added. This method would throw an exception if neither of title and namespace, or page_id was defined.
However, some private CheckUser events inserted to the database before b6759da0882f8960d3de730fb61f4277c93a497e can meet these conditions. As such, the throwing of the exception should be removed and instead no target should be added.
This is more of an issue for the MW-1.42-release, because wikis that follow the stable release will not get the commit b6759da0882f8960d3de730fb61f4277c93a497e until they upgrade to 1.42 which means these entries with no title or page ID will not have expired from the database like has happened (nearly for all entries) on production.
Steps to replicate the issue (include links if applicable):
- Checkout d1ec8fc2c21c4ff24cb2f8ec404aadbd5e2c8347
- Set $wgCheckUserLogLogins = true; in your LocalSettings.php
- Checkout 8ae6f753509f760fd178210105de5140ac9a5f86
- Run a check using Special:CheckUser on the IP you used to make the failed login attempt
What happens?:
An exception appears with the following stack trace:
/wiki/Special:CheckUser LogicException: Either title and namespace, or page must be set in the row. Backtrace: from /var/www/html/w/extensions/CheckUser/src/Services/CheckUserLookupUtils.php(165) #0 /var/www/html/w/extensions/CheckUser/src/CheckUser/Pagers/CheckUserGetActionsPager.php(268): MediaWiki\CheckUser\Services\CheckUserLookupUtils->getManualLogEntryFromRow() #1 /var/www/html/w/extensions/CheckUser/src/CheckUser/Pagers/CheckUserGetActionsPager.php(212): MediaWiki\CheckUser\CheckUser\Pagers\CheckUserGetActionsPager->getActionText() #2 /var/www/html/w/includes/pager/ReverseChronologicalPager.php(134): MediaWiki\CheckUser\CheckUser\Pagers\CheckUserGetActionsPager->formatRow() #3 /var/www/html/w/includes/pager/IndexPager.php(594): MediaWiki\Pager\ReverseChronologicalPager->getRow() #4 /var/www/html/w/extensions/CheckUser/src/CheckUser/SpecialCheckUser.php(363): MediaWiki\Pager\IndexPager->getBody() #5 /var/www/html/w/includes/specialpage/SpecialPage.php(718): MediaWiki\CheckUser\CheckUser\SpecialCheckUser->execute() #6 /var/www/html/w/includes/specialpage/SpecialPageFactory.php(1669): MediaWiki\SpecialPage\SpecialPage->run() #7 /var/www/html/w/includes/actions/ActionEntryPoint.php(504): MediaWiki\SpecialPage\SpecialPageFactory->executePath() #8 /var/www/html/w/includes/actions/ActionEntryPoint.php(145): MediaWiki\Actions\ActionEntryPoint->performRequest() #9 /var/www/html/w/includes/MediaWikiEntryPoint.php(199): MediaWiki\Actions\ActionEntryPoint->execute() #10 /var/www/html/w/index.php(58): MediaWiki\MediaWikiEntryPoint->run() #11 {main}
What should have happened instead?:
No exception should appear