Page MenuHomePhabricator

PHP Deprecated: Use of Parser::getPage without a Title set was deprecated in MediaWiki 1.34. [Called from Parser::addTrackingCategory]
Closed, ResolvedPublic1 Estimated Story PointsPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   PHP Deprecated: Use of Parser::getPage without a Title set was deprecated in MediaWiki 1.34. [Called from Parser::addTrackingCategory]
exception.trace
from /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(4086)
#0 [internal function]: MWExceptionHandler::handleError(integer, string, string, string, array)
#1 /srv/mediawiki/php-1.42.0-wmf.10/includes/debug/MWDebug.php(378): trigger_error(string, integer)
#2 /srv/mediawiki/php-1.42.0-wmf.10/includes/debug/MWDebug.php(349): MWDebug::sendRawDeprecated(string, boolean, string)
#3 /srv/mediawiki/php-1.42.0-wmf.10/includes/debug/MWDebug.php(230): MWDebug::deprecatedMsg(string, string, string, integer)
#4 /srv/mediawiki/php-1.42.0-wmf.10/includes/GlobalFunctions.php(773): MWDebug::deprecated(string, string, string, integer)
#5 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(1010): wfDeprecated(string, string)
#6 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(4086): Parser->getPage()
#7 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/PPFrame_Hash.php(145): Parser->addTrackingCategory(string)
#8 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(3243): PPFrame_Hash->newChild(array, MediaWiki\Title\Title)
#9 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/PPFrame_Hash.php(274): Parser->braceSubstitution(array, PPFrame_Hash)
#10 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(2893): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#11 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(896): Parser->replaceVariables(string, PPFrame_Hash)
#12 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(4851): Parser->preprocess(string, MediaWiki\Title\Title, ParserOptions)
#13 /srv/mediawiki/php-1.42.0-wmf.10/includes/language/MessageCache.php(1454): Parser->transformMsg(string, ParserOptions, NULL)
#14 /srv/mediawiki/php-1.42.0-wmf.10/includes/language/Message.php(1469): MessageCache->transform(string, boolean, LanguageEn, NULL)
#15 /srv/mediawiki/php-1.42.0-wmf.10/includes/language/Message.php(1012): Message->transformText(string)
#16 /srv/mediawiki/php-1.42.0-wmf.10/includes/language/Message.php(1060): Message->format(string)
#17 /srv/mediawiki/php-1.42.0-wmf.10/extensions/Translate/src/PageTranslation/Hooks.php(566): Message->text()
#18 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(3948): MediaWiki\Extension\Translate\PageTranslation\Hooks::languages(NULL, array, Parser, PPFrame_Hash)
#19 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/PPFrame_Hash.php(352): Parser->extensionSubstitution(array, PPFrame_Hash, boolean)
#20 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(2893): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#21 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(1552): Parser->replaceVariables(string)
#22 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(816): Parser->internalParse(string, boolean, boolean)
#23 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parser.php(865): Parser->recursiveTagParse(string)
#24 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parsoid/Config/DataAccess.php(362): Parser->parseExtensionTagAsTopLevelDoc(string)
#25 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php(162): MediaWiki\Parser\Parsoid\Config\DataAccess->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOutput, string)
#26 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php(292): Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler->onExtension(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#27 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wt2Html/TT/TokenHandler.php(146): Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler->onTag(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#28 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(132): Wikimedia\Parsoid\Wt2Html\TT\TokenHandler->process(array)
#29 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(195): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunk(array)
#30 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(193): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
#31 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wt2Html/TreeBuilder/TreeBuilderStage.php(488): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
#32 [internal function]: Wikimedia\Parsoid\Wt2Html\TreeBuilder\TreeBuilderStage->processChunkily(string, array)
#33 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(987): Generator->current()
#34 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(180): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
#35 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(293): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#36 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php(164): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#37 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Parsoid.php(199): Wikimedia\Parsoid\Wikitext\ContentModelHandler->toDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI)
#38 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/src/Parsoid.php(240): Wikimedia\Parsoid\Parsoid->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOutput, array)
#39 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parsoid/ParsoidParser.php(152): Wikimedia\Parsoid\Parsoid->wikitext2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array, NULL, MediaWiki\Parser\ParserOutput)
#40 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parsoid/ParsoidParser.php(257): MediaWiki\Parser\Parsoid\ParsoidParser->genParserOutput(MediaWiki\Parser\Parsoid\Config\PageConfig, ParserOptions)
#41 /srv/mediawiki/php-1.42.0-wmf.10/includes/content/WikitextContentHandler.php(397): MediaWiki\Parser\Parsoid\ParsoidParser->parse(string, MediaWiki\Title\Title, ParserOptions, boolean, boolean, integer)
#42 /srv/mediawiki/php-1.42.0-wmf.10/includes/content/ContentHandler.php(1698): WikitextContentHandler->fillParserOutput(WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, MediaWiki\Parser\ParserOutput)
#43 /srv/mediawiki/php-1.42.0-wmf.10/includes/content/Renderer/ContentRenderer.php(47): ContentHandler->getParserOutput(WikitextContent, MediaWiki\Content\Renderer\ContentParseParams)
#44 /srv/mediawiki/php-1.42.0-wmf.10/includes/Revision/RenderedRevision.php(260): MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(WikitextContent, MediaWiki\Title\Title, integer, ParserOptions, boolean)
#45 /srv/mediawiki/php-1.42.0-wmf.10/includes/Revision/RenderedRevision.php(232): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(WikitextContent, boolean)
#46 /srv/mediawiki/php-1.42.0-wmf.10/includes/Revision/RevisionRenderer.php(226): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#47 /srv/mediawiki/php-1.42.0-wmf.10/includes/Revision/RevisionRenderer.php(164): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, ParserOptions, array)
#48 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#49 /srv/mediawiki/php-1.42.0-wmf.10/includes/Revision/RenderedRevision.php(199): call_user_func(Closure, MediaWiki\Revision\RenderedRevision, array)
#50 /srv/mediawiki/php-1.42.0-wmf.10/includes/poolcounter/PoolWorkArticleView.php(84): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#51 /srv/mediawiki/php-1.42.0-wmf.10/includes/poolcounter/PoolWorkArticleViewCurrent.php(105): PoolWorkArticleView->renderRevision()
#52 /srv/mediawiki/php-1.42.0-wmf.10/includes/poolcounter/PoolCounterWork.php(167): PoolWorkArticleViewCurrent->doWork()
#53 /srv/mediawiki/php-1.42.0-wmf.10/includes/page/ParserOutputAccess.php(307): PoolCounterWork->execute()
#54 /srv/mediawiki/php-1.42.0-wmf.10/includes/parser/Parsoid/ParsoidOutputAccess.php(197): MediaWiki\Page\ParserOutputAccess->getParserOutput(MediaWiki\Page\PageStoreRecord, ParserOptions, MediaWiki\Revision\RevisionStoreRecord, integer)
#55 /srv/mediawiki/php-1.42.0-wmf.10/includes/Rest/Handler/Helper/HtmlOutputRendererHelper.php(756): MediaWiki\Parser\Parsoid\ParsoidOutputAccess->getParserOutput(MediaWiki\Page\PageStoreRecord, ParserOptions, MediaWiki\Revision\RevisionStoreRecord, integer, boolean)
#56 /srv/mediawiki/php-1.42.0-wmf.10/includes/Rest/Handler/Helper/HtmlOutputRendererHelper.php(564): MediaWiki\Rest\Handler\Helper\HtmlOutputRendererHelper->getParserOutputInternal(ParserOptions)
#57 /srv/mediawiki/php-1.42.0-wmf.10/includes/Rest/Handler/Helper/HtmlOutputRendererHelper.php(660): MediaWiki\Rest\Handler\Helper\HtmlOutputRendererHelper->getParserOutput()
#58 /srv/mediawiki/php-1.42.0-wmf.10/includes/Rest/Handler/ParsoidHandler.php(741): MediaWiki\Rest\Handler\Helper\HtmlOutputRendererHelper->getPageBundle()
#59 /srv/mediawiki/php-1.42.0-wmf.10/vendor/wikimedia/parsoid/extension/src/Rest/Handler/PageHandler.php(92): MediaWiki\Rest\Handler\ParsoidHandler->wt2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array)
#60 /srv/mediawiki/php-1.42.0-wmf.10/includes/Rest/Router.php(561): MWParsoid\Rest\Handler\PageHandler->execute()
#61 /srv/mediawiki/php-1.42.0-wmf.10/includes/Rest/Router.php(452): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler)
#62 /srv/mediawiki/php-1.42.0-wmf.10/includes/Rest/EntryPoint.php(195): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
#63 /srv/mediawiki/php-1.42.0-wmf.10/includes/Rest/EntryPoint.php(135): MediaWiki\Rest\EntryPoint->execute()
#64 /srv/mediawiki/php-1.42.0-wmf.10/rest.php(31): MediaWiki\Rest\EntryPoint::main()
#65 /srv/mediawiki/w/rest.php(3): require(string)
#66 {main}
Impact
Notes

Details

Request URL
https://www.mediawiki.org/w/rest.php/www.mediawiki.org/v3/page/pagebundle/Extension%3AAdvancedSearch%2Ftr/6284758

Event Timeline

Translate is not adding the tracking category.

The stack trace points to this piece of code:

				$title = wfMessage( 'tpt-languages-nonzero' )
					->inLanguage( $userLang )
					->params( $pagename )
					->numParams( 100 * $percent )
					->text();

Should it be $parser->msg()? That's only available since MW 1.40 but we can make it conditional.

Change 989898 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/Translate@master] Ensure a page context is set for wfMessage

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

Nikerabbit set the point value for this task to 1.Jan 18 2024, 3:23 PM

Should it be $parser->msg()? That's only available since MW 1.40 but we can make it conditional.

Since MW 1.41 has been released. We need not support MW 1.39

Change 989898 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] Ensure a page context is set for wfMessage

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

@cscott I'm confused. I can't find your trace after Jan 17th after which all jsonTruncated events with this trace stopped. All events after that have a different trace:

PHP Deprecated: Use of Parser::getPage without a Title set was deprecated in MediaWiki 1.34. [Called from MediaWiki\Extension\Translate\HookHandler::translateRenderParserFunction]
	
exception.trace
from /srv/mediawiki/php-1.42.0-wmf.18/extensions/Translate/src/HookHandler.php(783)
#0 [internal function]: MWExceptionHandler::handleError(integer, string, string, string, array)
#1 /srv/mediawiki/php-1.42.0-wmf.18/includes/debug/MWDebug.php(379): trigger_error(string, integer)
#2 /srv/mediawiki/php-1.42.0-wmf.18/includes/debug/MWDebug.php(350): MWDebug::sendRawDeprecated(string, boolean, string)
#3 /srv/mediawiki/php-1.42.0-wmf.18/includes/debug/MWDebug.php(231): MWDebug::deprecatedMsg(string, string, string, integer)
#4 /srv/mediawiki/php-1.42.0-wmf.18/includes/GlobalFunctions.php(773): MWDebug::deprecated(string, string, string, integer)
#5 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(1006): wfDeprecated(string, string)
#6 /srv/mediawiki/php-1.42.0-wmf.18/extensions/Translate/src/HookHandler.php(783): Parser->getPage()
#7 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(3380): MediaWiki\Extension\Translate\HookHandler::translateRenderParserFunction(Parser, string)
#8 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(3065): Parser->callParserFunction(PPTemplateFrame_Hash, string, array)
#9 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/PPFrame_Hash.php(274): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
#10 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(2978): PPFrame_Hash->expand(PPNode_Hash_Tree)
#11 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/PPFrame_Hash.php(274): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
#12 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(3256): PPFrame_Hash->expand(PPNode_Hash_Tree)
#13 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/PPFrame_Hash.php(274): Parser->braceSubstitution(array, PPFrame_Hash)
#14 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(2899): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#15 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(892): Parser->replaceVariables(string, PPFrame_Hash)
#16 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(4858): Parser->preprocess(string, MediaWiki\Title\Title, ParserOptions)
#17 /srv/mediawiki/php-1.42.0-wmf.18/includes/language/MessageCache.php(1455): Parser->transformMsg(string, ParserOptions, NULL)
#18 /srv/mediawiki/php-1.42.0-wmf.18/includes/language/Message.php(1472): MessageCache->transform(string, boolean, LanguageEn, NULL)
#19 /srv/mediawiki/php-1.42.0-wmf.18/includes/language/Message.php(1015): Message->transformText(string)
#20 /srv/mediawiki/php-1.42.0-wmf.18/includes/language/Message.php(1063): Message->format(string)
#21 /srv/mediawiki/php-1.42.0-wmf.18/includes/api/ApiUsageException.php(58): Message->text()
#22 /srv/mediawiki/php-1.42.0-wmf.18/includes/api/ApiBase.php(1622): ApiUsageException->__construct(ApiEditPage, MediaWiki\Status\Status)
#23 /srv/mediawiki/php-1.42.0-wmf.18/includes/api/ApiEditPage.php(557): ApiBase->dieStatus(MediaWiki\Status\Status)
#24 /srv/mediawiki/php-1.42.0-wmf.18/includes/api/ApiMain.php(1945): ApiEditPage->execute()
#25 /srv/mediawiki/php-1.42.0-wmf.18/includes/api/ApiMain.php(921): ApiMain->executeAction()
#26 /srv/mediawiki/php-1.42.0-wmf.18/includes/api/ApiMain.php(892): ApiMain->executeActionWithErrorHandling()
#27 /srv/mediawiki/php-1.42.0-wmf.18/includes/api/ApiEntryPoint.php(158): ApiMain->execute()
#28 /srv/mediawiki/php-1.42.0-wmf.18/includes/MediaWikiEntryPoint.php(199): MediaWiki\Api\ApiEntryPoint->execute()
#29 /srv/mediawiki/php-1.42.0-wmf.18/api.php(44): MediaWiki\MediaWikiEntryPoint->run()
#30 /srv/mediawiki/w/api.php(3): require(string)
#31 {main}

This looks different to me, although so far no errors from wmf.19 where this patch is included, but given this only happens every few days, it's too early to tell.

The old error is definitely fixed, and the new error above hasn't appeared in a week, so tentatively closing this.