Page MenuHomePhabricator

TypeError: Return value of Wikimedia\Parsoid\Wt2Html\Grammar::tsrOffsets() must be an instance of Wikimedia\Patsoid\Tokens\SourceRange, instance of Wikimedia\Patsoid\Tokens\SourceRange returned
Closed, DuplicatePublicPRODUCTION ERROR

Description

6000+ of these in the past hour, started roughly at 10:48 UTC.

trace
from /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(109)
#0 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(650): Wikimedia\Parsoid\Wt2Html\Grammar->tsrOffsets()
#1 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(2903): Wikimedia\Parsoid\Wt2Html\Grammar->a25()
#2 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(8885): Wikimedia\Parsoid\Wt2Html\Grammar->parsenewlineToken(boolean)
#3 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(8784): Wikimedia\Parsoid\Wt2Html\Grammar->parsesol_prefix(boolean)
#4 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(6500): Wikimedia\Parsoid\Wt2Html\Grammar->parseempty_line_with_comments(boolean)
#5 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(6313): Wikimedia\Parsoid\Wt2Html\Grammar->parsesol(boolean, integer, string, NULL)
#6 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(3946): Wikimedia\Parsoid\Wt2Html\Grammar->parseblock_lines(boolean, integer, string, NULL)
#7 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(13518): Wikimedia\Parsoid\Wt2Html\Grammar->parseblock(boolean, integer, NULL, string)
#8 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(12558): Wikimedia\Parsoid\Wt2Html\Grammar->parsenested_block(boolean, integer, string, NULL)
#9 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(11255): Wikimedia\Parsoid\Wt2Html\Grammar->parsetemplate_param_text(boolean, integer, string, NULL)
#10 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(9150): Wikimedia\Parsoid\Wt2Html\Grammar->parsetemplate_param_value(boolean, integer, string, NULL)
#11 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(6551): Wikimedia\Parsoid\Wt2Html\Grammar->parsetemplate_preproc(boolean, integer, string, NULL)
#12 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(4363): Wikimedia\Parsoid\Wt2Html\Grammar->parsetemplate(boolean, integer, NULL)
#13 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(3334): Wikimedia\Parsoid\Wt2Html\Grammar->parsetplarg_or_template_guarded(boolean, integer, NULL, NULL)
#14 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(5832): Wikimedia\Parsoid\Wt2Html\Grammar->parsetplarg_or_template(boolean, integer, NULL, NULL)
#15 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(3799): Wikimedia\Parsoid\Wt2Html\Grammar->parseinline_element(boolean, integer, NULL, NULL)
#16 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(6465): Wikimedia\Parsoid\Wt2Html\Grammar->parseinlineline(boolean, integer, NULL, NULL)
#17 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(4012): Wikimedia\Parsoid\Wt2Html\Grammar->parseparagraph(boolean, integer, NULL, NULL)
#18 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(2868): Wikimedia\Parsoid\Wt2Html\Grammar->parseblock(boolean, integer, NULL, NULL)
#19 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php(1982): Wikimedia\Parsoid\Wt2Html\Grammar->parsetlb(boolean, NULL)
#20 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/PegTokenizer.php(129): Wikimedia\Parsoid\Wt2Html\Grammar->streamstart_async(boolean, NULL)
#21 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(193): Wikimedia\Parsoid\Wt2Html\PegTokenizer->processChunkily(string, array)
#22 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(193): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
#23 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/TreeBuilder/TreeBuilderStage.php(487): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
#24 [internal function]: Wikimedia\Parsoid\Wt2Html\TreeBuilder\TreeBuilderStage->processChunkily(string, array)
#25 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(1040): Generator->current()
#26 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(180): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
#27 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(308): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#28 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php(122): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#29 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Parsoid.php(168): Wikimedia\Parsoid\Wikitext\ContentModelHandler->toDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI)
#30 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Parsoid.php(200): Wikimedia\Parsoid\Parsoid->parseWikitext(MWParsoid\Config\PageConfig, array)
#31 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/extension/src/Rest/Handler/ParsoidHandler.php(584): Wikimedia\Parsoid\Parsoid->wikitext2html(MWParsoid\Config\PageConfig, array, NULL)
#32 /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/extension/src/Rest/Handler/PageHandler.php(88): MWParsoid\Rest\Handler\ParsoidHandler->wt2html(MWParsoid\Config\PageConfig, array)
#33 /srv/mediawiki/php-1.38.0-wmf.22/includes/Rest/Router.php(414): MWParsoid\Rest\Handler\PageHandler->execute()
#34 /srv/mediawiki/php-1.38.0-wmf.22/includes/Rest/Router.php(338): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler)
#35 /srv/mediawiki/php-1.38.0-wmf.22/includes/Rest/EntryPoint.php(167): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
#36 /srv/mediawiki/php-1.38.0-wmf.22/includes/Rest/EntryPoint.php(132): MediaWiki\Rest\EntryPoint->execute()
#37 /srv/mediawiki/php-1.38.0-wmf.22/rest.php(31): MediaWiki\Rest\EntryPoint::main()
#38 /srv/mediawiki/w/rest.php(3): require(string)
#39 {main}

Details

Request URL
https://en.wikipedia.org/w/rest.php/en.wikipedia.org/v3/page/pagebundle/Carlos_Alcantara_(cyclist)/1046265841

Event Timeline

Between “Patsoid” and the identical expected/actual type, this sounds a lot like another opcache corruption. It also only affects one host, wtp1027.

There is also another, similar message, also with the misspelled Parsoid:

Argument 1 passed to Wikimedia\Patsoid\Tokens\SourceRange::join() must be an instance of Wikimedia\Patsoid\Tokens\SourceRange, instance of Wikimedia\Patsoid\Tokens\SourceRange given, called in /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php on line 772

And this is also all on wtp1027.

Also, @Joe restarted php-fpm on wtp1027 at 12:24 UTC and the error seems to be gone from logstash since then.

Between “Patsoid” and the identical expected/actual type, this sounds a lot like another opcache corruption. It also only affects one host, wtp1027.

There is also another, similar message, also with the misspelled Parsoid:

Argument 1 passed to Wikimedia\Patsoid\Tokens\SourceRange::join() must be an instance of Wikimedia\Patsoid\Tokens\SourceRange, instance of Wikimedia\Patsoid\Tokens\SourceRange given, called in /srv/mediawiki/php-1.38.0-wmf.22/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php on line 772

And this is also all on wtp1027.

Yep and restarting php-fpm on that host (sal) fixed the issue.

Edit: Lucas was apparently faster linking the sal entry.

Daimona assigned this task to Joe.

Oh right, sorry, I forgot to close this. We briefly talked about this on #wikimedia-operations and it was indeed the classic opcache brainfart.