Page MenuHomePhabricator

TypeError: MediaWiki\Parser\ParserOutput::setNumericPageProperty with non-numeric value
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   TypeError: MediaWiki\Parser\ParserOutput::setNumericPageProperty with non-numeric value
exception.trace
from /srv/mediawiki/php-1.43.0-wmf.21/includes/parser/ParserOutput.php(1583)
#0 /srv/mediawiki/php-1.43.0-wmf.21/includes/parser/ParserOutput.php(2555): MediaWiki\Parser\ParserOutput->setNumericPageProperty(string, bool)
#1 /srv/mediawiki/php-1.43.0-wmf.21/includes/parser/Parsoid/Config/DataAccess.php(371): MediaWiki\Parser\ParserOutput->collectMetadata(MediaWiki\Parser\ParserOutput)
#2 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php(686): MediaWiki\Parser\Parsoid\Config\DataAccess->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOutput, string)
#3 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php(150): Wikimedia\Parsoid\Utils\PipelineUtils::fetchHTML(Wikimedia\Parsoid\Config\Env, string)
#4 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php(273): Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler->onExtension(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#5 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TT/TokenHandler.php(138): Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler->onTag(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#6 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(113): Wikimedia\Parsoid\Wt2Html\TT\TokenHandler->process(array)
#7 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(166): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunk(array)
#8 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(132): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->process(array, array)
#9 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php(107): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parse(string, array)
#10 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(643): Wikimedia\Parsoid\Utils\PipelineUtils::processContentInPipeline(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\Wt2Html\PageConfigFrame, string, array)
#11 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1080): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->processTemplateSource(Wikimedia\Parsoid\Tokens\SelfclosingTagTk, array, string)
#12 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1110): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->expandTemplate(Wikimedia\Parsoid\Wt2Html\TT\TemplateEncapsulator)
#13 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1151): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->onTemplate(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#14 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TT/TokenHandler.php(138): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->onTag(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#15 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(113): Wikimedia\Parsoid\Wt2Html\TT\TokenHandler->process(array)
#16 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(176): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunk(array)
#17 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(174): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
#18 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/TreeBuilder/TreeBuilderStage.php(476): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
#19 [internal function]: Wikimedia\Parsoid\Wt2Html\TreeBuilder\TreeBuilderStage->processChunkily(string, array)
#20 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(985): Generator->current()
#21 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(172): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
#22 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(287): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#23 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php(176): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#24 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Parsoid.php(197): Wikimedia\Parsoid\Wikitext\ContentModelHandler->toDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, null)
#25 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/parsoid/src/Parsoid.php(240): Wikimedia\Parsoid\Parsoid->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOutput, array, null)
#26 /srv/mediawiki/php-1.43.0-wmf.21/includes/parser/Parsoid/ParsoidParser.php(134): Wikimedia\Parsoid\Parsoid->wikitext2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array, null, MediaWiki\Parser\ParserOutput)
#27 /srv/mediawiki/php-1.43.0-wmf.21/includes/parser/Parsoid/ParsoidParser.php(248): MediaWiki\Parser\Parsoid\ParsoidParser->genParserOutput(MediaWiki\Parser\Parsoid\Config\PageConfig, ParserOptions, null)
#28 /srv/mediawiki/php-1.43.0-wmf.21/extensions/Linter/includes/LintUpdate.php(89): MediaWiki\Parser\Parsoid\ParsoidParser->parse(string, MediaWiki\Title\Title, ParserOptions, bool, bool, int)
#29 /srv/mediawiki/php-1.43.0-wmf.21/includes/deferred/DeferredUpdates.php(460): MediaWiki\Linter\LintUpdate->doUpdate()
#30 /srv/mediawiki/php-1.43.0-wmf.21/includes/deferred/RefreshSecondaryDataUpdate.php(112): MediaWiki\Deferred\DeferredUpdates::attemptUpdate(MediaWiki\Linter\LintUpdate)
#31 /srv/mediawiki/php-1.43.0-wmf.21/includes/deferred/DeferredUpdates.php(460): MediaWiki\Deferred\RefreshSecondaryDataUpdate->doUpdate()
#32 /srv/mediawiki/php-1.43.0-wmf.21/includes/Storage/DerivedPageDataUpdater.php(1833): MediaWiki\Deferred\DeferredUpdates::attemptUpdate(MediaWiki\Deferred\RefreshSecondaryDataUpdate)
#33 /srv/mediawiki/php-1.43.0-wmf.21/includes/page/WikiPage.php(1911): MediaWiki\Storage\DerivedPageDataUpdater->doSecondaryDataUpdates(array)
#34 /srv/mediawiki/php-1.43.0-wmf.21/includes/jobqueue/jobs/RefreshLinksJob.php(297): WikiPage->doSecondaryDataUpdates(array)
#35 /srv/mediawiki/php-1.43.0-wmf.21/includes/jobqueue/jobs/RefreshLinksJob.php(204): RefreshLinksJob->runForTitle(MediaWiki\Title\Title)
#36 /srv/mediawiki/php-1.43.0-wmf.21/extensions/EventBus/includes/JobExecutor.php(80): RefreshLinksJob->run()
#37 /srv/mediawiki/rpc/RunSingleJob.php(60): MediaWiki\Extension\EventBus\JobExecutor->execute(array)
#38 {main}
Notes

A burst of 319 of these happened after rolling 1.43.0-wmf.21 to group0 today.

Event Timeline

dancy triaged this task as Unbreak Now! priority.Sep 3 2024, 6:22 PM

Change #1070317 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] ParserOutput::setNumericPageProperty: Add some detail to TypError, for easier debugging

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

Change #1070318 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] Revert "Add missing cases to ParserOutput::collectMetadata()"

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

Change #1070319 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@wmf/1.43.0-wmf.21] Revert "Add missing cases to ParserOutput::collectMetadata()"

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

Change #1070325 had a related patch set uploaded (by Subramanya Sastry; author: Subramanya Sastry):

[mediawiki/core@master] ParserOutput: collectMetadata: Handle non-string/non-numeric case

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

Change #1070326 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] ParserOutput::collectMetadata: Log if given value is non-numeric and also non-string, for easier debugging, and don't fatal

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

Change #1070325 abandoned by Subramanya Sastry:

[mediawiki/core@master] ParserOutput: collectMetadata: Handle non-string/non-numeric case

Reason:

In favour of https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1070326

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

Change #1070326 merged by jenkins-bot:

[mediawiki/core@master] ParserOutput::collectMetadata: Log if given value is non-numeric and also non-string, for easier debugging, and don't fatal

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

Change #1070319 abandoned by Hashar:

[mediawiki/core@wmf/1.43.0-wmf.21] Revert "Add missing cases to ParserOutput::collectMetadata()"

Reason:

Superseded by https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1070326

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

Change #1070318 abandoned by Hashar:

[mediawiki/core@master] Revert "Add missing cases to ParserOutput::collectMetadata()"

Reason:

Superseded by https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1070326

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

Change #1070548 had a related patch set uploaded (by Hashar; author: Jforrester):

[mediawiki/core@wmf/1.43.0-wmf.21] ParserOutput::collectMetadata: Log if given value is non-numeric and also non-string, for easier debugging, and don't fatal

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

Change #1070548 merged by jenkins-bot:

[mediawiki/core@wmf/1.43.0-wmf.21] ParserOutput::collectMetadata: Log if given value is non-numeric and also non-string, for easier debugging, and don't fatal

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

Mentioned in SAL (#wikimedia-operations) [2024-09-04T15:00:34Z] <hashar@deploy1003> Started scap sync-world: Backport for [[gerrit:1070548|ParserOutput::collectMetadata: Log if given value is non-numeric and also non-string, for easier debugging, and don't fatal (T373920)]]

Mentioned in SAL (#wikimedia-operations) [2024-09-04T15:04:22Z] <hashar@deploy1003> hashar: Backport for [[gerrit:1070548|ParserOutput::collectMetadata: Log if given value is non-numeric and also non-string, for easier debugging, and don't fatal (T373920)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Mentioned in SAL (#wikimedia-operations) [2024-09-04T15:09:11Z] <hashar@deploy1003> Finished scap sync-world: Backport for [[gerrit:1070548|ParserOutput::collectMetadata: Log if given value is non-numeric and also non-string, for easier debugging, and don't fatal (T373920)]] (duration: 08m 37s)

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

[mediawiki/core@master] ParserOutput::collectMetadata: Properly handle non-scalar page properties

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

Advice for train conductors in T374046#10119288:

This is a long way of saying that you can probably cherry pick just 1070658 to quiet the logs and leave the "more correct" 1070660 to ride next week's train.

Change #1070660 merged by jenkins-bot:

[mediawiki/core@master] ParserOutput::collectMetadata: Properly handle non-scalar page properties

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

thcipriani lowered the priority of this task from Unbreak Now! to Needs Triage.Sep 6 2024, 4:37 PM
thcipriani subscribed.

Advice for train conductors in T374046#10119288:

This is a long way of saying that you can probably cherry pick just 1070658 to quiet the logs and leave the "more correct" 1070660 to ride next week's train.

Ack, thanks. Removing from train blockers and resetting priority.

ABreault-WMF assigned this task to cscott.

Change #1070317 abandoned by Hashar:

[mediawiki/core@master] ParserOutput::setNumericPageProperty: Add some detail to TypError, for easier debugging

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

Change #1070317 restored by Thcipriani:

[mediawiki/core@master] ParserOutput::setNumericPageProperty: Add some detail to TypError, for easier debugging

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