Page MenuHomePhabricator

Failed assertion in TableFixups handler
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error

MediaWiki version: 1.36.0-wmf.8

message
Invariant failed: Expected successful parse of 
=== <div style="text-align: center;">[[WP:BLOCK|Blocking]]</div> ===
==== Templates ====
This template uses a [[Wikipedia:Parser functions|parser function]]. To give greater detail to your message, you may specify: {{#switch:{{PAGENAME}}|Uw-block3|Uw-ublock|Uw-uhblock=|#default=the block duration,}} a specific reason for the block, and auto-include your signature:  <code><nowiki>{{subst:</nowiki>{{PAGENAME}}|

Impact

Notes

Details

Request ID
d05b3c48-7fca-4288-bdf0-6000bc23baba
Request URL
https://en.wikipedia.org/w/rest.php/en.wikipedia.org/v3/page/pagebundle/User%3ASnowolf%2FAdmin_tools/817142121
Stack Trace
exception.trace
#0 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(431): Wikimedia\Assert\Assert::invariant(boolean, string)
#1 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(528): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->combineWithPreviousCell(Wikimedia\Parsoid\Wt2Html\PageConfigFrame, DOMElement)
#2 /srv/mediawiki/php-1.36.0-wmf.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(847): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->Wikimedia\Parsoid\Wt2Html\{closure}(DOMElement, array, boolean)
#12 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(896): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->doPostProcess(DOMDocument)
#13 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(913): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->process(DOMDocument)
#14 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(152): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
#15 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(202): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#16 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(299): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseToplevelDoc(string, array)
#17 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/src/Core/WikitextContentModelHandler.php(78): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#18 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/src/Parsoid.php(161): Wikimedia\Parsoid\Core\WikitextContentModelHandler->toDOM(Wikimedia\Parsoid\Config\Env)
#19 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/src/Parsoid.php(193): Wikimedia\Parsoid\Parsoid->parseWikitext(MWParsoid\Config\PageConfig, array)
#20 /srv/mediawiki/php-1.36.0-wmf.8/vendor/wikimedia/parsoid/extension/src/Rest/Handler/ParsoidHandler.php(587): Wikimedia\Parsoid\Parsoid->wikitext2html(MWParsoid\Config\PageConfig, array, NULL)
#21 /srv/mediawiki/php-1.36.0-wmf.8/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.8/vendor/wikimedia/parsoid/extension/src/Rest/Handler/ParsoidHandler.php(1044): MWParsoid\Rest\Handler\PageHandler->realExecute()
#23 /srv/mediawiki/php-1.36.0-wmf.8/includes/Rest/Router.php(365): MWParsoid\Rest\Handler\ParsoidHandler->execute()
#24 /srv/mediawiki/php-1.36.0-wmf.8/includes/Rest/Router.php(320): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler)
#25 /srv/mediawiki/php-1.36.0-wmf.8/includes/Rest/EntryPoint.php(144): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
#26 /srv/mediawiki/php-1.36.0-wmf.8/includes/Rest/EntryPoint.php(110): MediaWiki\Rest\EntryPoint->execute()
#27 /srv/mediawiki/php-1.36.0-wmf.8/rest.php(31): MediaWiki\Rest\EntryPoint::main()
#28 /srv/mediawiki/w/rest.php(3): require(string)
#29 {main}
Related Changes in Gerrit:

Event Timeline

ssastry triaged this task as Medium priority.Sep 11 2020, 5:31 AM
ssastry added a project: Parsoid.

Reproducible with this snippet:

{|
| style="border: 1px solid #88a;  background: orange;" |
foo {{#switch:{{PAGENAME}}|Uw-block3|Uw-ublock|Uw-uhblock=|#default={{!}}time=''Duration''}} bar
|}

Turns out this is an edge case I thought we didn't have to support. The code expects the |time=''Duration'' bar cell to combine with the previous cell and reparse as a single cell where the merged cell becomes plain text. So, need to tweak the combineWithPreviousCell code to handle this scenario.

Change 627566 had a related patch set uploaded (by Subramanya Sastry; owner: Subramanya Sastry):
[mediawiki/services/parsoid@master] Fix crasher in TableFixups handler + document unhandled scenario

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

Change 627566 merged by jenkins-bot:
[mediawiki/services/parsoid@master] Fix crashers in TableFixups handler + document unhandled scenarios

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

In wmf.9, seeing a handful of:

Invariant failed: Expected successful parse of  '''&mdash;'''<onlyinclude>
|

For:

/w/rest.php/en.wikipedia.org/v3/page/pagebundle/List_of_specialized_municipalities_in_Alberta/957018021

Same bug or should those be filed separately?

Same bug. That page parses now without crashing on Parsoid master.

Will ride the train next week.

Change 628944 had a related patch set uploaded (by Subramanya Sastry; owner: Subramanya Sastry):
[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.13.0-a10

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

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

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