Page MenuHomePhabricator

Unable to view some pages on Incubator (Postcondition failed in Title::getBaseTitle makeTitleSafe via GeoCrumbsHooks)
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error

Request ID: XUG40gpAMFQAAKDkvqIAAABW
Request URL: https://incubator.wikimedia.org/wiki//incubator.m.wikimedia.org

message
/wiki//incubator.m.wikimedia.org   Wikimedia\Assert\PostconditionException from line 140 of /srv/mediawiki/php-1.34.0-wmf.15/vendor/wikimedia/assert/src/Assert.php: Postcondition failed: makeTitleSafe() should always return a Title for the text returned by getBaseText().
trace
#0 /srv/mediawiki/php-1.34.0-wmf.15/includes/Title.php(1852): Wikimedia\Assert\Assert::postcondition(boolean, string)
#1 /srv/mediawiki/php-1.34.0-wmf.15/extensions/GeoCrumbs/includes/GeoCrumbsHooks.php(65): Title->getBaseTitle()
#2 /srv/mediawiki/php-1.34.0-wmf.15/extensions/GeoCrumbs/includes/GeoCrumbsHooks.php(45): GeoCrumbsHooks::completeImplicitIsIn(ParserOutput, Title)
#3 /srv/mediawiki/php-1.34.0-wmf.15/includes/Hooks.php(174): GeoCrumbsHooks::onParserBeforeTidy(Parser, string)
#4 /srv/mediawiki/php-1.34.0-wmf.15/includes/Hooks.php(202): Hooks::callHook(string, array, array, NULL)
#5 /srv/mediawiki/php-1.34.0-wmf.15/includes/parser/Parser.php(1509): Hooks::run(string, array)
#6 /srv/mediawiki/php-1.34.0-wmf.15/includes/parser/Parser.php(558): Parser->internalParseHalfParsed(string, boolean, boolean)
#7 /srv/mediawiki/php-1.34.0-wmf.15/includes/cache/MessageCache.php(1260): Parser->parse(string, Title, ParserOptions, boolean)
#8 /srv/mediawiki/php-1.34.0-wmf.15/includes/language/Message.php(1265): MessageCache->parse(string, Title, boolean, boolean, LanguageEn)
#9 /srv/mediawiki/php-1.34.0-wmf.15/includes/language/Message.php(895): Message->parseText(string)
#10 /srv/mediawiki/php-1.34.0-wmf.15/includes/language/Message.php(981): Message->toString(string)
#11 /srv/mediawiki/php-1.34.0-wmf.15/includes/OutputPage.php(3960): Message->parseAsBlock()
#12 /srv/mediawiki/php-1.34.0-wmf.15/includes/OutputPage.php(3948): OutputPage->addWikiMsgArray(string, array)
#13 /srv/mediawiki/php-1.34.0-wmf.15/extensions/WikimediaIncubator/includes/WikimediaIncubator.php(624): OutputPage->addWikiMsg(string)
#14 /srv/mediawiki/php-1.34.0-wmf.15/includes/Hooks.php(174): WikimediaIncubator::onShowMissingArticle(Article)
#15 /srv/mediawiki/php-1.34.0-wmf.15/includes/Hooks.php(202): Hooks::callHook(string, array, array, NULL)
#16 /srv/mediawiki/php-1.34.0-wmf.15/includes/page/Article.php(1400): Hooks::run(string, array)
#17 /srv/mediawiki/php-1.34.0-wmf.15/includes/page/Article.php(684): Article->showMissingArticle()
#18 /srv/mediawiki/php-1.34.0-wmf.15/includes/actions/ViewAction.php(63): Article->view()
#19 /srv/mediawiki/php-1.34.0-wmf.15/includes/MediaWiki.php(507): ViewAction->show()
#20 /srv/mediawiki/php-1.34.0-wmf.15/includes/MediaWiki.php(302): MediaWiki->performAction(Article, Title)
#21 /srv/mediawiki/php-1.34.0-wmf.15/includes/MediaWiki.php(892): MediaWiki->performRequest()
#22 /srv/mediawiki/php-1.34.0-wmf.15/includes/MediaWiki.php(523): MediaWiki->main()
#23 /srv/mediawiki/php-1.34.0-wmf.15/index.php(42): MediaWiki->run()
#24 /srv/mediawiki/w/index.php(3): include(string)
#25 {main}
Notes

Shows up in logstash ~29 times starting on 2019-07-24.

Still cropping up occasionally as of 1.35.0-wmf.23.

Event Timeline

mmodell changed the subtype of this task from "Task" to "Production Error".Aug 28 2019, 11:05 PM
Krinkle renamed this task from Postcondition failed: makeTitleSafe() should always return a Title for the text returned by getBaseText(). to Fatal error when viewing some Incubator pages (Postcondition failed in Title::getBaseTitle via GeoCrumbsHooks).Oct 12 2019, 11:52 PM
Krinkle renamed this task from Fatal error when viewing some Incubator pages (Postcondition failed in Title::getBaseTitle via GeoCrumbsHooks) to Unable to view some pages on Incubator (Postcondition failed in Title::getBaseTitle via GeoCrumbsHooks).Oct 12 2019, 11:55 PM
daniel triaged this task as Medium priority.Nov 11 2019, 8:09 PM
brennen updated the task description. (Show Details)
brennen moved this task from Backlog to Logs/Train on the User-brennen board.
thcipriani renamed this task from Unable to view some pages on Incubator (Postcondition failed in Title::getBaseTitle via GeoCrumbsHooks) to Unable to view some pages on Incubator (Postcondition failed in Title::getBaseTitle makeTitleSafe via GeoCrumbsHooks).Jun 11 2020, 8:23 PM

This is cased by getBaseTitle() when the title starts with a "/", e.g. https://de.wikivoyage.org/wiki//portugal (https://de.wikivoyage.org/wiki/portugal works fine).

Basically, asking for a page with a leading "/" in the title in a namespace that has subpages enabled will trigger this.

This raises some questions about the intended behavior for degenerate cases like /// or //foo//bar//baz//.

Change 605185 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] Title: fix subpage split for degenerate cases

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

Change 605185 merged by jenkins-bot:
[mediawiki/core@master] Title: fix subpage split for degenerate cases

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

{{SUBPAGENAME}} no longer returns the Pagename when no subpages are detected. The getSubpageText() function which is used internally to get the output of {{SUBPAGENAME}} returns an empty string instead of the Pagename after this patch has been deployed.

{{SUBPAGENAME}} no longer returns the Pagename when no subpages are detected.

See T256922 instead for that.

fixed as far as I can tell.

Change 499164 had a related patch set uploaded (by Thiemo Kreuz (WMDE); owner: Thiemo Kreuz (WMDE)):
[mediawiki/core@master] title: Fix bogus Title::getSkinFromConfigSubpage()

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

Change 616725 had a related patch set uploaded (by Thiemo Kreuz (WMDE); owner: Thiemo Kreuz (WMDE)):
[mediawiki/core@master] title: Fix Title::findSubpageDivider() destroying certain strings

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

Change 616725 merged by jenkins-bot:

[mediawiki/core@master] title: Fix Title::findSubpageDivider() destroying certain strings

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

Change 499164 merged by jenkins-bot:

[mediawiki/core@master] title: Fix bogus Title::getSkinFromConfigSubpage()

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