Page MenuHomePhabricator

Wikimedia\Assert\InvariantException: Invariant failed: Expected valid DSR
Open, MediumPublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   Wikimedia\Assert\InvariantException: Invariant failed: Expected valid DSR
exception.trace
from /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/assert/src/Assert.php(231)
#0 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(140): Wikimedia\Assert\Assert::invariant(boolean, string)
#1 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(428): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->hoistTransclusionInfo(Wikimedia\Parsoid\Wt2Html\PageConfigFrame, array, Wikimedia\Parsoid\DOM\Element)
#2 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(645): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->reparseTemplatedAttributes(Wikimedia\Parsoid\Wt2Html\PageConfigFrame, Wikimedia\Parsoid\DOM\Element, NULL)
#3 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(452): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->handleTableCellTemplates(Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Wt2Html\PageConfigFrame)
#4 [internal function]: Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->Wikimedia\Parsoid\Wt2Html\{closure}(Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#5 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(111): call_user_func(Closure, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#6 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(189): Wikimedia\Parsoid\Utils\DOMTraverser->callHandlers(Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\Utils\DTState)
#7 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#8 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#9 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#10 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#11 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#12 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(145): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#13 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/DOMPPTraverser.php(43): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#14 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(149): Wikimedia\Parsoid\Wt2Html\DOMPPTraverser->run(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\DOM\Element, array, boolean)
#15 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(916): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->Wikimedia\Parsoid\Wt2Html\{closure}(Wikimedia\Parsoid\DOM\Element, array, boolean)
#16 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(957): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->doPostProcess(Wikimedia\Parsoid\DOM\Element)
#17 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(975): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->process(Wikimedia\Parsoid\DOM\Element)
#18 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(180): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
#19 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(299): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#20 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php(164): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#21 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Parsoid.php(195): Wikimedia\Parsoid\Wikitext\ContentModelHandler->toDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI)
#22 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/src/Parsoid.php(233): Wikimedia\Parsoid\Parsoid->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, ParserOutput, array)
#23 /srv/mediawiki/php-1.41.0-wmf.25/includes/parser/Parsoid/ParsoidOutputAccess.php(302): Wikimedia\Parsoid\Parsoid->wikitext2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array, NULL, ParserOutput)
#24 /srv/mediawiki/php-1.41.0-wmf.25/includes/parser/Parsoid/ParsoidOutputAccess.php(480): MediaWiki\Parser\Parsoid\ParsoidOutputAccess->parseInternal(MediaWiki\Parser\Parsoid\Config\PageConfig, array)
#25 /srv/mediawiki/php-1.41.0-wmf.25/includes/parser/Parsoid/ParsoidOutputAccess.php(244): MediaWiki\Parser\Parsoid\ParsoidOutputAccess->parse(MediaWiki\Page\PageStoreRecord, ParserOptions, array, MediaWiki\Revision\RevisionStoreRecord)
#26 /srv/mediawiki/php-1.41.0-wmf.25/includes/Rest/Handler/Helper/HtmlOutputRendererHelper.php(746): MediaWiki\Parser\Parsoid\ParsoidOutputAccess->getParserOutput(MediaWiki\Page\PageStoreRecord, ParserOptions, MediaWiki\Revision\RevisionStoreRecord, integer)
#27 /srv/mediawiki/php-1.41.0-wmf.25/includes/Rest/Handler/Helper/HtmlOutputRendererHelper.php(574): MediaWiki\Rest\Handler\Helper\HtmlOutputRendererHelper->getParserOutputInternal(ParserOptions)
#28 /srv/mediawiki/php-1.41.0-wmf.25/includes/Rest/Handler/Helper/HtmlOutputRendererHelper.php(670): MediaWiki\Rest\Handler\Helper\HtmlOutputRendererHelper->getParserOutput()
#29 /srv/mediawiki/php-1.41.0-wmf.25/includes/Rest/Handler/ParsoidHandler.php(918): MediaWiki\Rest\Handler\Helper\HtmlOutputRendererHelper->getPageBundle()
#30 /srv/mediawiki/php-1.41.0-wmf.25/vendor/wikimedia/parsoid/extension/src/Rest/Handler/PageHandler.php(92): MediaWiki\Rest\Handler\ParsoidHandler->wt2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array)
#31 /srv/mediawiki/php-1.41.0-wmf.25/includes/Rest/Router.php(517): MWParsoid\Rest\Handler\PageHandler->execute()
#32 /srv/mediawiki/php-1.41.0-wmf.25/includes/Rest/Router.php(422): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler)
#33 /srv/mediawiki/php-1.41.0-wmf.25/includes/Rest/EntryPoint.php(195): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
#34 /srv/mediawiki/php-1.41.0-wmf.25/includes/Rest/EntryPoint.php(135): MediaWiki\Rest\EntryPoint->execute()
#35 /srv/mediawiki/php-1.41.0-wmf.25/rest.php(31): MediaWiki\Rest\EntryPoint::main()
#36 /srv/mediawiki/w/rest.php(3): require(string)
#37 {main}
Impact
Notes

Details

Request URL
https://it.wikisource.org/w/rest.php/it.wikisource.org/v3/page/pagebundle/Pagina%3AVerga_-_Teatro%2C_Milano%2C_Treves%2C_1912.djvu%2F69/2695385

Event Timeline

2024-01-30_invalid-dsr.png (579×935 px, 44 KB)

This looks like it's on the uptick since last Wednesday

Fresh stacktrace:

Error
normalized_message
[{reqId}] {exception_url}   Wikimedia\Assert\InvariantException: Invariant failed: Expected valid DSR
exception.trace
from /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/assert/src/Assert.php(231)
#0 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(148): Wikimedia\Assert\Assert::invariant(boolean, string)
#1 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(424): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->hoistTransclusionInfo(Wikimedia\Parsoid\Wt2Html\PageConfigFrame, array, Wikimedia\Parsoid\DOM\Element)
#2 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(658): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->reparseTemplatedAttributes(Wikimedia\Parsoid\Wt2Html\PageConfigFrame, Wikimedia\Parsoid\DOM\Element, NULL)
#3 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(438): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->handleTableCellTemplates(Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Wt2Html\PageConfigFrame)
#4 [internal function]: Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->Wikimedia\Parsoid\Wt2Html\{closure}(Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#5 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(111): call_user_func(Closure, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#6 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(189): Wikimedia\Parsoid\Utils\DOMTraverser->callHandlers(Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\Utils\DTState)
#7 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#8 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#9 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#10 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#11 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#12 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#13 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#14 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#15 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#16 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#17 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#18 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#19 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#20 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(204): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#21 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(145): Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(boolean, Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#22 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/DOMPPTraverser.php(39): Wikimedia\Parsoid\Utils\DOMTraverser->traverse(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#23 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(131): Wikimedia\Parsoid\Wt2Html\DOMPPTraverser->run(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\DOM\Element, array, boolean)
#24 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(908): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->Wikimedia\Parsoid\Wt2Html\{closure}(Wikimedia\Parsoid\DOM\Element, array, boolean)
#25 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(949): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->doPostProcess(Wikimedia\Parsoid\DOM\Element)
#26 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(967): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->process(Wikimedia\Parsoid\DOM\Element)
#27 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(170): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
#28 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(279): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#29 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php(161): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#30 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Parsoid.php(191): Wikimedia\Parsoid\Wikitext\ContentModelHandler->toDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI)
#31 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/src/Parsoid.php(232): Wikimedia\Parsoid\Parsoid->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOutput, array)
#32 /srv/mediawiki/php-1.42.0-wmf.15/includes/parser/Parsoid/ParsoidParser.php(152): Wikimedia\Parsoid\Parsoid->wikitext2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array, NULL, MediaWiki\Parser\ParserOutput)
#33 /srv/mediawiki/php-1.42.0-wmf.15/includes/parser/Parsoid/ParsoidParser.php(260): MediaWiki\Parser\Parsoid\ParsoidParser->genParserOutput(MediaWiki\Parser\Parsoid\Config\PageConfig, ParserOptions)
#34 /srv/mediawiki/php-1.42.0-wmf.15/includes/content/WikitextContentHandler.php(397): MediaWiki\Parser\Parsoid\ParsoidParser->parse(string, MediaWiki\Title\Title, ParserOptions, boolean, boolean, integer)
#35 /srv/mediawiki/php-1.42.0-wmf.15/includes/content/ContentHandler.php(1683): WikitextContentHandler->fillParserOutput(WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, MediaWiki\Parser\ParserOutput)
#36 /srv/mediawiki/php-1.42.0-wmf.15/includes/content/Renderer/ContentRenderer.php(47): ContentHandler->getParserOutput(WikitextContent, MediaWiki\Content\Renderer\ContentParseParams)
#37 /srv/mediawiki/php-1.42.0-wmf.15/includes/Revision/RenderedRevision.php(260): MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(WikitextContent, MediaWiki\Title\Title, integer, ParserOptions, boolean)
#38 /srv/mediawiki/php-1.42.0-wmf.15/includes/Revision/RenderedRevision.php(232): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(WikitextContent, boolean)
#39 /srv/mediawiki/php-1.42.0-wmf.15/includes/Revision/RevisionRenderer.php(226): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#40 /srv/mediawiki/php-1.42.0-wmf.15/includes/Revision/RevisionRenderer.php(164): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, ParserOptions, array)
#41 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#42 /srv/mediawiki/php-1.42.0-wmf.15/includes/Revision/RenderedRevision.php(199): call_user_func(Closure, MediaWiki\Revision\RenderedRevision, array)
#43 /srv/mediawiki/php-1.42.0-wmf.15/includes/poolcounter/PoolWorkArticleView.php(87): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#44 /srv/mediawiki/php-1.42.0-wmf.15/includes/poolcounter/PoolWorkArticleViewCurrent.php(110): MediaWiki\PoolCounter\PoolWorkArticleView->renderRevision()
#45 /srv/mediawiki/php-1.42.0-wmf.15/includes/poolcounter/PoolCounterWork.php(172): MediaWiki\PoolCounter\PoolWorkArticleViewCurrent->doWork()
#46 /srv/mediawiki/php-1.42.0-wmf.15/includes/page/ParserOutputAccess.php(307): MediaWiki\PoolCounter\PoolCounterWork->execute()
#47 /srv/mediawiki/php-1.42.0-wmf.15/includes/parser/Parsoid/ParsoidOutputAccess.php(197): MediaWiki\Page\ParserOutputAccess->getParserOutput(MediaWiki\Page\PageStoreRecord, ParserOptions, MediaWiki\Revision\RevisionStoreRecord, integer)
#48 /srv/mediawiki/php-1.42.0-wmf.15/includes/Rest/Handler/Helper/HtmlOutputRendererHelper.php(757): MediaWiki\Parser\Parsoid\ParsoidOutputAccess->getParserOutput(MediaWiki\Page\PageStoreRecord, ParserOptions, MediaWiki\Revision\RevisionStoreRecord, integer, boolean)
#49 /srv/mediawiki/php-1.42.0-wmf.15/includes/Rest/Handler/Helper/HtmlOutputRendererHelper.php(565): MediaWiki\Rest\Handler\Helper\HtmlOutputRendererHelper->getParserOutputInternal(ParserOptions)
#50 /srv/mediawiki/php-1.42.0-wmf.15/includes/Rest/Handler/Helper/HtmlOutputRendererHelper.php(661): MediaWiki\Rest\Handler\Helper\HtmlOutputRendererHelper->getParserOutput()
#51 /srv/mediawiki/php-1.42.0-wmf.15/includes/Rest/Handler/ParsoidHandler.php(742): MediaWiki\Rest\Handler\Helper\HtmlOutputRendererHelper->getPageBundle()
#52 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/parsoid/extension/src/Rest/Handler/PageHandler.php(92): MediaWiki\Rest\Handler\ParsoidHandler->wt2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array)
#53 /srv/mediawiki/php-1.42.0-wmf.15/includes/Rest/Router.php(561): MWParsoid\Rest\Handler\PageHandler->execute()
#54 /srv/mediawiki/php-1.42.0-wmf.15/includes/Rest/Router.php(452): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler)
#55 /srv/mediawiki/php-1.42.0-wmf.15/includes/Rest/EntryPoint.php(195): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
#56 /srv/mediawiki/php-1.42.0-wmf.15/includes/Rest/EntryPoint.php(135): MediaWiki\Rest\EntryPoint->execute()
#57 /srv/mediawiki/php-1.42.0-wmf.15/rest.php(31): MediaWiki\Rest\EntryPoint::main()
#58 /srv/mediawiki/w/rest.php(3): require(string)
#59 {main}
Notes
  • Coming in at a rate of > 10 every 15 minutes, putting it at the top of the log message list currently.

This is related to T355704 and I expect this will be fixed by https://gerrit.wikimedia.org/r/c/mediawiki/services/parsoid/+/992542 which is riding this week's train. One of @Arlolra or me will verify that is indeed the case.

Ya, the code being deployed on this train fixes it:

╭─subbu@earth ~/work/wmf/parsoid  ‹0.19.0-a14*› 
╰─➤  php bin/parse.php --oldid 18323771 --domain he.wikipedia.org < /dev/null | head -5     
Wikimedia\Assert\InvariantException from line 231 of /home/subbu/work/wmf/parsoid/vendor/wikimedia/assert/src/Assert.php: Invariant failed: Expected valid DSR
#0 /home/subbu/work/wmf/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(148): Wikimedia\Assert\Assert::invariant()
#1 /home/subbu/work/wmf/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(424): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->hoistTransclusionInfo()
#2 /home/subbu/work/wmf/parsoid/src/Wt2Html/PP/Handlers/TableFixups.php(658): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->reparseTemplatedAttributes()
#3 /home/subbu/work/wmf/parsoid/src/Wt2Html/DOMPostProcessor.php(438): Wikimedia\Parsoid\Wt2Html\PP\Handlers\TableFixups->handleTableCellTemplates()
╭─subbu@earth ~/work/wmf/parsoid  ‹0.19.0-a14*› 
╰─➤  git checkout v0.19.0-a15                                                               
Previous HEAD position was 4c3979e4c Handle empty string return value from special page transclusions
HEAD is now at dd40bd414 Revert "No need to track needTransclusionShadow"
╭─subbu@earth ~/work/wmf/parsoid  ‹v0.19.0-a15*› 
╰─➤  php bin/parse.php --oldid 18323771 --domain he.wikipedia.org < /dev/null | head -5
<meta property="mw:PageProp/noeditsection" data-parsoid='{"src":"__ללא_עריכה__","magicSrc":"__ללא_עריכה__","dsr":[0,21,null,null]}'/>
<table class="wikitable toccolours" data-parsoid='{"dsr":[22,1107,31,2]}'>
<tbody data-parsoid='{"dsr":[54,1105,0,0]}'><tr data-parsoid='{"startTagSrc":"|-","dsr":[54,1104,2,0]}'>
<td width="230px" valign="top" data-parsoid='{"dsr":[57,895,27,0]}'>
<p data-parsoid='{"dsr":[85,155,0,0]}'><span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[]],"dsr":[85,112,null,null]}' data-mw='{"parts":[{"template":{"target":{"wt":"מספר משתמשים","function":"numberofusers"},"params":{},"i":0}}]}'>1,148,755</span> - <span about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"pi":[[]],"dsr":[115,155,null,null]}' data-mw='{"parts":[{"template":{"target":{"wt":"מספר משתמשים פעילים","function":"numberofactiveusers"},"params":{},"i":0}}]}'>3,303</span></p>

It looks like the logs as a result of T355704 have calmed down

Screenshot 2024-02-05 at 3.26.29 PM.png (2×2 px, 278 KB)

itwikisource:Pagina%3ATempesta.djvu%2F16 is another page that triggers this error.

The itwikisource errors are because TableFixups is being run on tables embedded within a <poem> tag. For content in some extensions (like <poem> for example), DSR offsets are cleared because the offsets correspond to synthetic content. So, the assertion is guaranteed to fail. So, 'hoistTransclusionInfo' needs to recover gracefully in these scenarios. We need to figure out what that would be.

ssastry triaged this task as Medium priority.Apr 8 2024, 5:23 AM
ssastry moved this task from Backlog to In Progress on the Content-Transform-Team-WIP board.

We could preserve DSR offsets, as long as the offsets are associated with a frame. Right now, we don't have the internal representation where DSR is associated with a frame -- they are always associated with the top level frame. As such, for now, we may have to bail and add some marker type on the extension output indicating that the semantic markup on the contents might be incomplete. So, editing clients cannot support native editing for such extensions + we may need to be a bit more specific in our docs as to what this marker type might mean.

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

[mediawiki/services/parsoid@master] WIP: TableFixups: don't insist on valid dsrs for extension content

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

Just documenting discussion so we don't forget. One option is to run all passes on well-formed fragments (which extension fragments are -- and enforced to be that way -- in Parsoid). This ensures that table fixups run on the extension fragment while we still have DSR offsets rather than try to run them all at once on the top-level page *after* we have cleared DSR offests on some extension fragments (like <poem>).