Page MenuHomePhabricator

symfony/process dependency in SyntaxHighlight not loaded
Closed, ResolvedPublic

Description

If you visit

api.php?action=flow-parsoid-utils&from=wikitext&to=html&content=%27%27%27lorem%27%27%27+%27%27blah%27%27&title=Main_Page

You'll get

[fatal] [2be71e0c] PHP Fatal Error: Class undefined: Symfony\Component\Process\ProcessBuilder

MediaWiki or an installed extension requires this class but it is not embedded directly in MediaWiki's gi
t repository and must be installed separately by the end user.

Please see <a href="https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries">mediawiki.
org</a> for help on installing the required components.
#0 /vagrant/mediawiki/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php(280): NO_FUNCTION_
GIVEN()
#1 /vagrant/mediawiki/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php(448): SyntaxHighli
ght_GeSHi::highlight(string, string)
#2 /vagrant/mediawiki/includes/Hooks.php(195): SyntaxHighlight_GeSHi::onApiFormatHighlight(DerivativeCont
ext, string, string, string)
#3 /vagrant/mediawiki/includes/api/ApiFormatBase.php(202): Hooks::run(string, array)
#4 /vagrant/mediawiki/includes/api/ApiMain.php(1460): ApiFormatBase->closePrinter()
#5 /vagrant/mediawiki/includes/api/ApiMain.php(1285): ApiMain->printResult(boolean)
#6 /vagrant/mediawiki/includes/api/ApiMain.php(427): ApiMain->executeAction()
#7 /vagrant/mediawiki/includes/api/ApiMain.php(399): ApiMain->executeActionWithErrorHandling()
#8 /vagrant/mediawiki/api.php(83): ApiMain->execute()
#9 /var/www/w/api.php(5): include(string)
#10 {main}

in your debug log and an error about the missing processbuilder displayed on the web page.

Event Timeline

MarkAHershberger raised the priority of this task from to Needs Triage.
MarkAHershberger updated the task description. (Show Details)
MarkAHershberger added a subscriber: MarkAHershberger.
Restricted Application added subscribers: StudiesWorld, Aklapper. · View Herald Transcript

I'm not sure where this belongs. I first encountered it when playing with Flow, but grep (and the exception) shows that it comes from SyntaxHighlight_GeSHi.

It looks like the dependency is in the extension, though, and it was already installed in the extension's vendor directory.

Maybe this is a problem with composer dependencies and autoloader creation?

What versions of SyntaxHighlight and core are you using?

MarkAHershberger renamed this task from composer.json doesn't include dependency on symfony/process to symfony/process dependency in SyntaxHighlight not loaded.Feb 2 2016, 1:13 PM
mediawiki/extensions/SyntaxHighlight_GeSHi$ git log -1 --oneline
48d1591 Localisation updates from https://translatewiki.net.

mediawiki/extensions/SyntaxHighlight_GeSHi$ cd ../..
mediawiki$ git log -1 --oneline
31d4359 Fix typo in cookie key

@MarkAHershberger could you try updating to the latest commit from master branch please. And please update mediawiki to maybe 1.27 rc or master branch.

Since I think this may have resolved your issue https://phabricator.wikimedia.org/rESHG03bbdd8a2edac96f80be16dcb5c498be69f0af84

I'm on master and just got the same error. It hit me when loading the role for geshi.

This is still present in Mediawiki-vagrant.

This is still present in Mediawiki-vagrant.

Can you check to see if you have a mediawiki/extensions/SyntaxHighlight_GeSHi/vendor directory? This directory should be created by the initial vagrant provision following a vagrant role enable geshi and updated anytime you run vagrant git-update, but there may be some reason that the installation of the composer managed libraries failed for you. If the directory is missing, composer install in the `mediawiki/extensions/SyntaxHighlight_GeSHi directory should create it. Or you might try composer update from the extension directory to ensure that the vendor repository is not out of date. The Composer commands can be run from inside the Vagrant managed VM (vagrant ssh to get a shell) or from your host computer if you have Composer and PHP installed so that they work from your cli.

Do a composer updatemanually, that fixes the missing dependencies.

I have not tried to run vagrant git-updateon a clean install, but I am running it now to see if it fires any errors at me.

Do a composer updatemanually, that fixes the missing dependencies.

This fixed it for me.

Is this still a problem for anyone ?

TheDJ claimed this task.

As far as i know, either using the advised vagrant git-update or a manual composer update for that directory fixes any such problems. Updating composer is a standard practice, so this is not a problem that requires further action.