Page MenuHomeMiraheze

Recent Changes on theresnothingbetter.miraheze.org is throwing internal errors
Closed, ResolvedPublic

Description

Just what it says on the tin. Attempting to view Recent changes instead displays a page reading

Internal error
[a2a77bd2e454da57a435b112] 2022-12-07 00:02:38: Fatal exception of type "Wikimedia\Assert\ParameterAssertionException"

Event Timeline

Reception123 triaged this task as Normal priority.Dec 7 2022, 07:50
Reception123 added a project: MediaWiki.
Bad value for parameter $title: invalid name '_2016-10-31:_Halloween_in_Another_World'
from /srv/mediawiki/w/vendor/wikimedia/assert/src/Assert.php(72)
#0 /srv/mediawiki/w/includes/title/TitleValue.php(180): Wikimedia\Assert\Assert::parameter(boolean, string, string)
#1 /srv/mediawiki/w/includes/title/TitleValue.php(144): TitleValue::assertValidSpec(integer, string, string, string)
#2 /srv/mediawiki/w/includes/CommentFormatter/RowCommentIterator.php(119): TitleValue->__construct(integer, string)
#3 /srv/mediawiki/w/includes/CommentFormatter/CommentFormatter.php(316): MediaWiki\CommentFormatter\RowCommentIterator->current()
#4 /srv/mediawiki/w/includes/CommentFormatter/CommentBatch.php(190): MediaWiki\CommentFormatter\CommentFormatter->formatItemsInternal(MediaWiki\CommentFormatter\RowCommentIterator, NULL, NULL, NULL, NULL, boolean, NULL)
#5 /srv/mediawiki/w/includes/changes/ChangesList.php(334): MediaWiki\CommentFormatter\CommentBatch->execute()
#6 /srv/mediawiki/w/includes/specials/SpecialRecentChanges.php(542): ChangesList->initChangesListRows(Wikimedia\Rdbms\MysqliResultWrapper)
#7 /srv/mediawiki/w/includes/specialpage/ChangesListSpecialPage.php(1553): SpecialRecentChanges->outputChangesList(Wikimedia\Rdbms\MysqliResultWrapper, FormOptions)
#8 /srv/mediawiki/w/includes/specialpage/ChangesListSpecialPage.php(659): ChangesListSpecialPage->webOutput(Wikimedia\Rdbms\MysqliResultWrapper, FormOptions)
#9 /srv/mediawiki/w/includes/specials/SpecialRecentChanges.php(205): ChangesListSpecialPage->execute(NULL)
#10 /srv/mediawiki/w/includes/specialpage/SpecialPage.php(671): SpecialRecentChanges->execute(NULL)
#11 /srv/mediawiki/w/includes/specialpage/SpecialPageFactory.php(1378): SpecialPage->run(NULL)
#12 /srv/mediawiki/w/includes/MediaWiki.php(315): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, RequestContext)
#13 /srv/mediawiki/w/includes/MediaWiki.php(912): MediaWiki->performRequest()
#14 /srv/mediawiki/w/includes/MediaWiki.php(563): MediaWiki->main()
#15 /srv/mediawiki/w/index.php(53): MediaWiki->run()
#16 /srv/mediawiki/w/index.php(46): wfIndexMain()
#17 {main}
Reception123 assigned this task to Unknown Object (User).Dec 7 2022, 07:57

Interesting stacktrace. You can tell what happened is that there were pages named Draft:_Foo before a namespace was added, but then when the Draft: namespace was added, the page is interpreted as a page named _Foo in the Draft NS. And nothing is supposed to begin with a space/underscore. It might be fixable by renaming the page, but since it's RecentChanges being broken, I wonder if it would continue to be broken after renaming for seven days.

The error can still be reproduced, you just have to set RecentChanges longer than 7 days.

Unknown Object (User) added a comment.Dec 10 2022, 16:40

The error can still be reproduced, you just have to set RecentChanges longer than 7 days.

I apologise. I plan to look into fixing this in the DB today.

Unknown Object (User) closed this task as Resolved.Dec 10 2022, 19:08

I have fixed it in the database, but the pages would now be at the non-Draft prefix.

The underscore prefixed ones were in the Draft prefix before.
Before making the changes I got the old and new titles so you can move them back if needed:

> SELECT page_title, SUBSTR( page_title, 2 ) AS page_new_title FROM page WHERE page_title LIKE '\_%';
stdClass Object
(
    [page_title] => _2016-09-19:_All_children_who_love_stories,_come,_gather_'round...
    [page_new_title] => 2016-09-19:_All_children_who_love_stories,_come,_gather_'round...
)
stdClass Object
(
    [page_title] => _2016-09-30:_There_has_to_be_something_better
    [page_new_title] => 2016-09-30:_There_has_to_be_something_better
)
stdClass Object
(
    [page_title] => _2016-10-31:_Halloween_in_Another_World
    [page_new_title] => 2016-10-31:_Halloween_in_Another_World
)
stdClass Object
(
    [page_title] => _2016-12-24:_The_2016_Christmas_Party
    [page_new_title] => 2016-12-24:_The_2016_Christmas_Party
)
stdClass Object
(
    [page_title] => _2017-02-14:_Valentine's_Day_in_Another_World
    [page_new_title] => 2017-02-14:_Valentine's_Day_in_Another_World
)
stdClass Object
(
    [page_title] => _Arc_2:_All_Is_Fair_in_Love_and_War
    [page_new_title] => Arc_2:_All_Is_Fair_in_Love_and_War
)