Page MenuHomePhabricator

Failed assertion in TableFixups handler
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error

MediaWiki version: 1.36.0-wmf.13

message
Invariant failed: Expected successful parse of 
|

Impact

Notes

Details

Request ID
085fa049-2f0e-45f8-9a85-0277eb16ac61
Request URL
https://commons.wikimedia.org/w/rest.php/commons.wikimedia.org/v3/page/pagebundle/Template%3ABS-color%2Flist/268165058
Stack Trace
exception.trace
#0 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(458): Wikimedia\Assert\Assert::invariant(boolean, string)
#1 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(549): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->combineWithPreviousCell(Wikimedia\Parsoid\Wt2Html\PageConfigFrame, DOMElement)
#2 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(380): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->handleTableCellTemplates(DOMElement, Wikimedia\Parsoid\Wt2Html\PageConfigFrame)
#3 [internal function]: Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->Wikimedia\Parsoid\Wt2Html\{closure}(DOMElement, Wikimedia\Parsoid\Config\Env, array, boolean, stdClass)
#4 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(79): call_user_func(Closure, DOMElement, Wikimedia\Parsoid\Config\Env, array, boolean, stdClass)
#5 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(148): Wikimedia\Parsoid\Utils\DOMTraverser->callHandlers(DOMElement, Wikimedia\Parsoid\Config\Env, array, boolean, stdClass)
#6 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(160): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Config\Env, DOMElement, array, boolean, stdClass)
#7 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(160): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Config\Env, DOMElement, array, boolean, NULL)
#8 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(160): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Config\Env, DOMElement, array, boolean, NULL)
#9 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(160): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Config\Env, DOMElement, array, boolean, NULL)
#10 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(148): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Config\Env, DOMElement, array, boolean, NULL)
#11 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(838): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->Wikimedia\Parsoid\Wt2Html\{closure}(DOMElement, array, boolean)
#12 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(887): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->doPostProcess(DOMDocument)
#13 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(904): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->process(DOMDocument)
#14 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(152): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
#15 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(202): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#16 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(299): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseToplevelDoc(string, array)
#17 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Core/WikitextContentModelHandler.php(81): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#18 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Parsoid.php(161): Wikimedia\Parsoid\Core\WikitextContentModelHandler->toDOM(Wikimedia\Parsoid\Config\Env)
#19 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/src/Parsoid.php(193): Wikimedia\Parsoid\Parsoid->parseWikitext(MWParsoid\Config\PageConfig, array)
#20 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/extension/src/Rest/Handler/ParsoidHandler.php(588): Wikimedia\Parsoid\Parsoid->wikitext2html(MWParsoid\Config\PageConfig, array, NULL)
#21 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/extension/src/Rest/Handler/PageHandler.php(88): MWParsoid\Rest\Handler\ParsoidHandler->wt2html(MWParsoid\Config\PageConfig, array)
#22 /srv/mediawiki/php-1.36.0-wmf.13/vendor/wikimedia/parsoid/extension/src/Rest/Handler/ParsoidHandler.php(1047): MWParsoid\Rest\Handler\PageHandler->realExecute()
#23 /srv/mediawiki/php-1.36.0-wmf.13/includes/Rest/Router.php(381): MWParsoid\Rest\Handler\ParsoidHandler->execute()
#24 /srv/mediawiki/php-1.36.0-wmf.13/includes/Rest/Router.php(316): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler)
#25 /srv/mediawiki/php-1.36.0-wmf.13/includes/Rest/EntryPoint.php(155): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
#26 /srv/mediawiki/php-1.36.0-wmf.13/includes/Rest/EntryPoint.php(119): MediaWiki\Rest\EntryPoint->execute()
#27 /srv/mediawiki/php-1.36.0-wmf.13/rest.php(31): MediaWiki\Rest\EntryPoint::main()
#28 /srv/mediawiki/w/rest.php(3): require(string)
#29 {main}

Event Timeline

Also fails on /w/rest.php/en.wikipedia.org/v3/page/pagebundle/Eline_De_Munck/916596722

ssastry renamed this task from Invariant failed: Expected successful parse of | to Failed assertion in TableFixups handler.Oct 16 2020, 1:16 PM
ssastry triaged this task as Medium priority.Oct 19 2020, 7:29 PM
ssastry moved this task from Needs Triage to Bugs & Crashers on the Parsoid board.

56 errors of this type in the last 15 minutes. Here's one:

from /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/assert/src/Assert.php(224)
#0 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(474): Wikimedia\Assert\Assert::invariant(boolean, string)
#1 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(581): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->combineWithPreviousCell(Wikimedia\Parsoid\Wt2Html\PageConfigFrame, DOMElement)
#2 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(382): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->handleTableCellTemplates(DOMElement, Wikimedia\Parsoid\Wt2Html\PageConfigFrame)
#3 [internal function]: Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->Wikimedia\Parsoid\Wt2Html\{closure}(DOMElement, Wikimedia\Parsoid\Config\Env, array, boolean, stdClass)
#4 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(80): call_user_func(Closure, DOMElement, Wikimedia\Parsoid\Config\Env, array, boolean, stdClass)
#5 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(152): Wikimedia\Parsoid\Utils\DOMTraverser->callHandlers(DOMElement, Wikimedia\Parsoid\Config\Env, array, boolean, stdClass)
#6 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(167): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Config\Env, DOMElement, array, boolean, stdClass)
#7 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(167): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Config\Env, DOMElement, array, boolean, NULL)
#8 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(167): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Config\Env, DOMElement, array, boolean, NULL)
#9 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(167): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Config\Env, DOMElement, array, boolean, NULL)
#10 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(150): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Config\Env, DOMElement, array, boolean, NULL)
#11 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(857): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->Wikimedia\Parsoid\Wt2Html\{closure}(DOMElement, array, boolean)
#12 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(907): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->doPostProcess(DOMElement)
#13 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(924): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->process(DOMElement)
#14 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(174): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
#15 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(235): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#16 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(299): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseToplevelDoc(string, array)
#17 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Core/WikitextContentModelHandler.php(106): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#18 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Parsoid.php(162): Wikimedia\Parsoid\Core\WikitextContentModelHandler->toDOM(Wikimedia\Parsoid\Config\Env)
#19 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Parsoid.php(194): Wikimedia\Parsoid\Parsoid->parseWikitext(MWParsoid\Config\PageConfig, array)
#20 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/extension/src/Rest/Handler/ParsoidHandler.php(589): Wikimedia\Parsoid\Parsoid->wikitext2html(MWParsoid\Config\PageConfig, array, NULL)
#21 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/extension/src/Rest/Handler/PageHandler.php(88): MWParsoid\Rest\Handler\ParsoidHandler->wt2html(MWParsoid\Config\PageConfig, array)
#22 /srv/mediawiki/php-1.36.0-wmf.27/includes/Rest/Router.php(389): MWParsoid\Rest\Handler\PageHandler->execute()
#23 /srv/mediawiki/php-1.36.0-wmf.27/includes/Rest/Router.php(316): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler)
#24 /srv/mediawiki/php-1.36.0-wmf.27/includes/Rest/EntryPoint.php(152): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
#25 /srv/mediawiki/php-1.36.0-wmf.27/includes/Rest/EntryPoint.php(117): MediaWiki\Rest\EntryPoint->execute()
#26 /srv/mediawiki/php-1.36.0-wmf.27/rest.php(31): MediaWiki\Rest\EntryPoint::main()
#27 /srv/mediawiki/w/rest.php(3): require(string)
#28 {main}
dancy raised the priority of this task from Medium to Unbreak Now!.Jan 26 2021, 9:48 PM

This is a known / old failure on some pages. On pages with tables that use this behavior on every table cell / row, this assertion will trigger once per cell / row. It is not indicative of a larger breakage across wikis.

So, from that POV, this is probably not an unbreak now or a train blocker.

But, we can take a look and confirm this analysis.

Thanks for the info ssastry. I would definitely like to see these errors cleaned up since they make it harder to analyze the status of a deployment.

In the meantime I will revert the priority to Medium and remove this as train blocker.

Also, commonswiki is rolled out as part of group1 (so tomorrow), so the commonswiki error couldn't be from the train. Looking at https://logstash.wikimedia.org/app/dashboards#/view/AW4Y6bumP44edBvO7lRc?_g=h@270dedf&_a=h@4e9499a I see 100s of assertions on dewiki:Benutzer:Tschubby/Testseite2.

We haven't worked through this assertion failure for all the edge cases we run into, but we'll try to get through some of these failures in the coming weeks.

But, in terms of actual production impact, this doesn't yet elevate to the level of an unbreak now, IMO.

dancy lowered the priority of this task from Unbreak Now! to Medium.Jan 26 2021, 10:08 PM

Thanks for the info ssastry. I would definitely like to see these errors cleaned up since they make it harder to analyze the status of a deployment.

In the meantime I will revert the priority to Medium and remove this as train blocker.

Thanks! I understand that it does impact your visibility. We'll try to address some of these scenarios in the coming weeks.

Change 660985 had a related patch set uploaded (by Subramanya Sastry; owner: Subramanya Sastry):
[mediawiki/services/parsoid@master] TableFixups: One more mishandled scenario with newlines

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

Change 660985 merged by jenkins-bot:
[mediawiki/services/parsoid@master] TableFixups: One more mishandled scenario with newlines

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

Change 666213 had a related patch set uploaded (by C. Scott Ananian; owner: C. Scott Ananian):
[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.13.0-a25

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

Change 666213 merged by jenkins-bot:
[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.13.0-a25

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

I am going to optimistically mark this resolved. Let us reopen if we see newer instances of any of these errors.

URL: /w/rest.php/zh.wikipedia.org/v3/transform/wikitext/to/pagebundle/%E9%A6%99%E6%B8%AF%E7%AC%AC%E5%85%AD%E5%B1%86%E5%8D%80%E8%AD%B0%E6%9C%83
Error: Invariant failed: Expected successful parse of [[陳寶琼]]||
Failing line: /srv/mediawiki/php-1.37.0-wmf.23/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(581): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->combineWithPreviousCell(Wikimedia\Parsoid\Wt2Html\PageConfigFrame, Wikimedia\Parsoid\DOM\Compat\Element)

On the latest version of zhwiki:香港第六屆區議會, we no longer have a crasher. Plus in https://gerrit.wikimedia.org/r/749751, I turn this in an error log rather than a crasher.