Stack Trace: from /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(202) #0 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(202): MWExceptionHandler::handleError(integer, string, string, integer, array) #1 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(1150): Wikimedia\Parsoid\Wt2Html\Grammar->maybeAnnotationOrExtensionTag(Wikimedia\Parsoid\Tokens\TagTk, NULL, array, Wikimedia\Parsoid\Tokens\SourceRange) #2 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(8796): Wikimedia\Parsoid\Wt2Html\Grammar->a92(NULL, string, boolean, boolean, array, NULL) #3 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(7635): Wikimedia\Parsoid\Wt2Html\Grammar->parsexmlish_tag_opened(boolean, integer, NULL, NULL) #4 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(5801): Wikimedia\Parsoid\Wt2Html\Grammar->parsexmlish_tag(boolean, integer, NULL, NULL) #5 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(3803): Wikimedia\Parsoid\Wt2Html\Grammar->parseinline_element(boolean, integer, NULL, NULL) #6 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(4020): Wikimedia\Parsoid\Wt2Html\Grammar->parseinlineline(boolean, integer, NULL, NULL) #7 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(13602): Wikimedia\Parsoid\Wt2Html\Grammar->parseblock(boolean, integer, NULL, NULL) #8 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(13556): Wikimedia\Parsoid\Wt2Html\Grammar->parsenested_block(boolean, integer, NULL, NULL) #9 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(13361): Wikimedia\Parsoid\Wt2Html\Grammar->parsenested_block_in_table(boolean, integer, NULL, NULL) #10 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(12509): Wikimedia\Parsoid\Wt2Html\Grammar->parsetable_data_tag(boolean, integer, NULL, NULL) #11 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(11169): Wikimedia\Parsoid\Wt2Html\Grammar->parsetable_data_tags(boolean, integer, NULL, NULL) #12 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(8659): Wikimedia\Parsoid\Wt2Html\Grammar->parsetable_content_line(boolean, integer, NULL, NULL) #13 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(6207): Wikimedia\Parsoid\Wt2Html\Grammar->parsetable_line(boolean, integer, NULL, NULL) #14 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(6349): Wikimedia\Parsoid\Wt2Html\Grammar->parseblock_line(boolean, integer, NULL, NULL) #15 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(3950): Wikimedia\Parsoid\Wt2Html\Grammar->parseblock_lines(boolean, integer, NULL, NULL) #16 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(2872): Wikimedia\Parsoid\Wt2Html\Grammar->parseblock(boolean, integer, NULL, NULL) #17 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(2063): Wikimedia\Parsoid\Wt2Html\Grammar->parsetlb(boolean, NULL) #18 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(14959): Wikimedia\Parsoid\Wt2Html\Grammar->parsestart(boolean, NULL) #19 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/PegTokenizer.php(169): Wikimedia\Parsoid\Wt2Html\Grammar->parse(string, array) #20 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/PegTokenizer.php(88): Wikimedia\Parsoid\Wt2Html\PegTokenizer->tokenizeSync(string, array) #21 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(140): Wikimedia\Parsoid\Wt2Html\PegTokenizer->process(string, array) #22 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php(105): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parse(string, array) #23 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(713): Wikimedia\Parsoid\Utils\PipelineUtils::processContentInPipeline(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\Wt2Html\PageConfigFrame, string, array) #24 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1228): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->processTemplateSource(array, array, string) #25 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1280): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->onTemplate(Wikimedia\Parsoid\Tokens\SelfclosingTagTk) #26 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/TT/TokenHandler.php(154): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->onTag(Wikimedia\Parsoid\Tokens\SelfclosingTagTk) #27 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(109): Wikimedia\Parsoid\Wt2Html\TT\TokenHandler->process(array) #28 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(153): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunk(array) #29 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(151): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array) #30 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/TreeBuilder/TreeBuilderStage.php(487): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array) #31 [internal function]: Wikimedia\Parsoid\Wt2Html\TreeBuilder\TreeBuilderStage->processChunkily(string, array) #32 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(1041): Generator->current() #33 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(180): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array) #34 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(308): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array) #35 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Core/WikitextContentModelHandler.php(106): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string) #36 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Parsoid.php(166): Wikimedia\Parsoid\Core\WikitextContentModelHandler->toDOM(Wikimedia\Parsoid\Config\Env) #37 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/src/Parsoid.php(198): Wikimedia\Parsoid\Parsoid->parseWikitext(MWParsoid\Config\PageConfig, array) #38 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/extension/src/Rest/Handler/ParsoidHandler.php(584): Wikimedia\Parsoid\Parsoid->wikitext2html(MWParsoid\Config\PageConfig, array, NULL) #39 /srv/mediawiki/php-1.38.0-wmf.17/vendor/wikimedia/parsoid/extension/src/Rest/Handler/PageHandler.php(88): MWParsoid\Rest\Handler\ParsoidHandler->wt2html(MWParsoid\Config\PageConfig, array) #40 /srv/mediawiki/php-1.38.0-wmf.17/includes/Rest/Router.php(414): MWParsoid\Rest\Handler\PageHandler->execute() #41 /srv/mediawiki/php-1.38.0-wmf.17/includes/Rest/Router.php(338): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler) #42 /srv/mediawiki/php-1.38.0-wmf.17/includes/Rest/EntryPoint.php(167): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals) #43 /srv/mediawiki/php-1.38.0-wmf.17/includes/Rest/EntryPoint.php(132): MediaWiki\Rest\EntryPoint->execute() #44 /srv/mediawiki/php-1.38.0-wmf.17/rest.php(31): MediaWiki\Rest\EntryPoint::main() #45 /srv/mediawiki/w/rest.php(3): require(string) #46 {main}
Description
Details
- Request URL
- https://meta.wikimedia.org/w/rest.php/meta.wikimedia.org/v3/page/pagebundle/Template%3AWikimediapro/14020483
Subject | Repo | Branch | Lines +/- | |
---|---|---|---|---|
Bump wikimedia/parsoid to 0.15.0-a18 | mediawiki/vendor | master | +513 -287 | |
Better handling of templated annotation attributes | mediawiki/services/parsoid | master | +48 -2 |
Related Objects
Event Timeline
That one is a <tvar| as argument of a template - we will eventually get rid of the source of this issue when we strip annotation from template arguments (already in progress around https://gerrit.wikimedia.org/r/c/mediawiki/services/parsoid/+/737825). In the meantime, I switched the tvar syntax in that page to <tvar name="title"></tvar>, which fixes the issue for this specific page. I'm still going to investigate a little longer because I'd like to understand why it breaks at the PEGParser level.
After having spent some quality time in the parser debug output, I have a minimal reproducer for this issue:
$ echo -e '<tvar {{1x|>}}</>' | php bin/parse.php
This wouldn't be supported syntax in any case, but I'll dig a bit more tomorrow to get rid of the underlying issue - it does feel icky that an array would be able to spawn in this context.
Change 755390 had a related patch set uploaded (by Isabelle Hurbain-Palatin; author: Isabelle Hurbain-Palatin):
[mediawiki/services/parsoid@master] Better handling of templated annotation attributes
Change 755390 merged by jenkins-bot:
[mediawiki/services/parsoid@master] Better handling of templated annotation attributes
Change 758585 had a related patch set uploaded (by Subramanya Sastry; author: Subramanya Sastry):
[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.15.0-a18
Change 758585 merged by jenkins-bot:
[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.15.0-a18