Page MenuHomePhabricator

EasyTimeline extension shell error
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error

MediaWiki version: 1.35.0-wmf.4

message
Shell error
Command
/bin/bash '/srv/mediawiki/php-1.35.0-wmf.4/includes/shell/limit.sh' ''\''/usr/bin/perl'\'' '\''/srv/mediawiki/php-1.35.0-wmf.4/extensions/timeline/EasyTimeline.pl'\'' -i '\''/tmp/timeline_f4edebea6876'\'' -m -P '\''/usr/bin/ploticus'\'' -T '\''/tmp'\'' -A '\''/wiki/$1'\'' -f '\''FreeSans'\''' 'MW_INCLUDE_STDERR=;MW_CPU_LIMIT=50; MW_CGROUP='\''/sys/fs/cgroup/memory/mediawiki/job'\''; MW_MEM_LIMIT=1048576; MW_FILE_SIZE_LIMIT=524288; MW_WALL_CLOCK_LIMIT=180; MW_USE_LOG_PIPE=yes'
Error
sh: 1: /usr/bin/ploticus: not found
sh: 1: /usr/bin/ploticus: not found

Notes

Not sure this is specific to Parsoid/PHP

Details

Request ID
XbsV5wpAAEUAAIzcfwgAAABD
Request URL
n/a
Stack Trace
exception.trace
#0 /includes/GlobalFunctions.php(2154): MediaWiki\Shell\Command->execute()
#1 /extensions/timeline/includes/Timeline.php(109): wfShellExec(string, NULL)
#2 /includes/parser/Parser.php(4145): Timeline::renderTimeline(string, array, Parser, PPFrame_Hash)
#3 /includes/parser/PPFrame_Hash.php(327): Parser->extensionSubstitution(array, PPFrame_Hash)
#4 /includes/parser/Parser.php(3188): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#5 /includes/parser/Parser.php(1501): Parser->replaceVariables(string)
#6 /includes/parser/Parser.php(798): Parser->internalParse(string, boolean, boolean)
#7 /includes/parser/Parser.php(846): Parser->recursiveTagParse(string)
#8 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/extension/src/Config/DataAccess.php(220): Parser->parseExtensionTagAsTopLevelDoc(string)
#9 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TT/ExtensionHandler.php(166): MWParsoid\Config\DataAccess->parseWikitext(MWParsoid\Config\PageConfig, string)
#10 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TT/ExtensionHandler.php(261): Parsoid\Wt2Html\TT\ExtensionHandler->onExtension(Parsoid\Tokens\SelfclosingTagTk)
#11 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TT/TokenHandler.php(211): Parsoid\Wt2Html\TT\ExtensionHandler->onTag(Parsoid\Tokens\SelfclosingTagTk)
#12 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TokenTransformManager.php(120): Parsoid\Wt2Html\TT\TokenHandler->process(array)
#13 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TokenTransformManager.php(182): Parsoid\Wt2Html\TokenTransformManager->processChunk(array)
#14 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/ParserPipeline.php(127): Parsoid\Wt2Html\TokenTransformManager->process(array, array)
#15 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Utils/PipelineUtils.php(110): Parsoid\Wt2Html\ParserPipeline->parse(string, array)
#16 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TT/TemplateHandler.php(620): Parsoid\Utils\PipelineUtils::processContentInPipeline(Parsoid\Config\Env, Parsoid\Wt2Html\PageConfigFrame, string, array)
#17 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TT/TemplateHandler.php(1399): Parsoid\Wt2Html\TT\TemplateHandler->processTemplateSource(array, array, string)
#18 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TT/TemplateHandler.php(1451): Parsoid\Wt2Html\TT\TemplateHandler->onTemplate(Parsoid\Tokens\SelfclosingTagTk)
#19 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TT/TokenHandler.php(211): Parsoid\Wt2Html\TT\TemplateHandler->onTag(Parsoid\Tokens\SelfclosingTagTk)
#20 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TokenTransformManager.php(120): Parsoid\Wt2Html\TT\TokenHandler->process(array)
#21 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TokenTransformManager.php(192): Parsoid\Wt2Html\TokenTransformManager->processChunk(array)
#22 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/TokenTransformManager.php(190): Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
#23 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/HTML5TreeBuilder.php(431): Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
#24 [internal function]: Parsoid\Wt2Html\HTML5TreeBuilder->processChunkily(string, array)
#25 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/DOMPostProcessor.php(895): Generator->current()
#26 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/ParserPipeline.php(148): Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
#27 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/ParserPipeline.php(198): Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#28 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Wt2Html/ParserPipelineFactory.php(308): Parsoid\Wt2Html\ParserPipeline->parseToplevelDoc(string, array)
#29 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/WikitextContentModelHandler.php(78): Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#30 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Parsoid.php(86): Parsoid\WikitextContentModelHandler->toHTML(Parsoid\Config\Env)
#31 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/src/Parsoid.php(113): Parsoid\Parsoid->parseWikitext(MWParsoid\Config\PageConfig, array)
#32 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/extension/src/Rest/Handler/ParsoidHandler.php(543): Parsoid\Parsoid->wikitext2html(MWParsoid\Config\PageConfig, array, NULL)
#33 /srv/deployment/parsoid/deploy-cache/revs/a69ec92e21cc4be117daaadef4a8fc5bf5813fcf/src/extension/src/Rest/Handler/PageHandler.php(55): MWParsoid\Rest\Handler\ParsoidHandler->wt2html(Parsoid\Config\Env, array)
#34 /includes/Rest/Router.php(315): MWParsoid\Rest\Handler\PageHandler->execute()
#35 /includes/Rest/Router.php(285): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler)
#36 /includes/Rest/EntryPoint.php(116): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
#37 /includes/Rest/EntryPoint.php(83): MediaWiki\Rest\EntryPoint->execute()
#38 /rest.php(31): MediaWiki\Rest\EntryPoint::main()
#39 /srv/mediawiki/w/rest.php(3): require(string)
#40 {main}

Event Timeline

I'm presuming ploticus just isn't installed on the Parsoid PHP servers?

There's potentially a few packages like this that MW will use for shelling out from the parser, so would be sensible to sort most of them in one go

ploticus is required in mediawiki::packages so it should be on everything.

but cumin shows it is actually just installed on wtp1025 and wtp2001 but not the others.

role::parsoid -> profile::parsoid ->

if $use_php
..
require ::profile::mediawiki::common

-> class { '::mediawiki::packages': }

but these packages were removed in:

https://gerrit.wikimedia.org/r/c/operations/puppet/+/540154

This happened on October 1st, so the 2 test servers got the package but later the other servers did not.

Change 548533 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] mediawiki::packages: re-add ploticus for EasyTimeline extension

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

Not sure this is specific to Parsoid/PHP

Not specific to Parsoid/PHP, only so much that they were the only appservers installed after October 1st so they came without math packages.

Change 548533 merged by Giuseppe Lavagetto:
[operations/puppet@production] mediawiki::packages: re-add ploticus for EasyTimeline extension

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

Sorry for the inconvenience. This wasn't spotted earlier as we didn't actively remove the packages from the canaries in production.