2015-09-25 132 views
1

有时,不是每次,但随着趋势的增加,我发现以下行为与作曲家安装symfony项目。 我们在这里使用不同的分支,从功能分支切换回主设备后,需要安装作曲家。 一切工作正常,但在最后一步,脚本在300秒后终止,而“buildBootstrap”。作曲家安装挂在ScriptHandler :: buildBootstrap

> post-update-cmd: Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap 
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap handling the post-update-cmd event terminated with an exception 



    [Symfony\Component\Process\Exception\ProcessTimedOutException]                                
    The process "'/usr/bin/php5' '--php-ini=/etc/php5/cli/php.ini' '/var/www/Project/vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Composer/../Resources/bin/build_bootstrap 
    .php' 'app' 'app' " exceeded the timeout of 300 seconds.                                  



Exception trace: 
() at phar:///var/www/Project/composer.phar/vendor/symfony/process/Symfony/Component/Process/Process.php:1219 
Symfony\Component\Process\Process->checkTimeout() at phar:///var/www/Project/composer.phar/vendor/symfony/process/Symfony/Component/Process/Process.php:356 
Symfony\Component\Process\Process->wait() at phar:///var/www/Project/composer.phar/vendor/symfony/process/Symfony/Component/Process/Process.php:210 
Symfony\Component\Process\Process->run() at /var/www/Project/vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Composer/ScriptHandler.php:454 
Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::executeBuildBootstrap() at /var/www/Project/vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Composer/ScriptHandler.php:82 
Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap() at phar:///var/www/Project/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:211 
Composer\EventDispatcher\EventDispatcher->executeEventPhpScript() at phar:///var/www/Project/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:167 
Composer\EventDispatcher\EventDispatcher->doDispatch() at phar:///var/www/Project/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:92 
Composer\EventDispatcher\EventDispatcher->dispatchScript() at phar:///var/www/Project/composer.phar/src/Composer/Installer.php:346 
Composer\Installer->run() at phar:///var/www/Project/composer.phar/src/Composer/Command/UpdateCommand.php:143 
Composer\Command\UpdateCommand->execute() at phar:///var/www/Project/composer.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257 
Symfony\Component\Console\Command\Command->run() at phar:///var/www/Project/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:874 
Symfony\Component\Console\Application->doRunCommand() at phar:///var/www/Project/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:195 
Symfony\Component\Console\Application->doRun() at phar:///var/www/Project/composer.phar/src/Composer/Console/Application.php:147 
Composer\Console\Application->doRun() at phar:///var/www/Project/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:126 
Symfony\Component\Console\Application->run() at phar:///var/www/Project/composer.phar/src/Composer/Console/Application.php:82 
Composer\Console\Application->run() at phar:///var/www/Project/composer.phar/bin/composer:43 
require() at /var/www/Project/composer.phar:25 


update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [packages1] ... [packagesN] 

此错误发生一次后,不可能再执行作曲者而不会直接挂在开头。

$> php -d memory_limit=-1 composer.phar -vvv install 

按下回车后,会直接挂起,没有输出,什么都没有。我重新启动然后机器和也许下一次工作,有时不喜欢上述。

有没有人发现过相同的东西?

回答

9

ScriptHandler :: buildBootstrap是在您的symfony项目中执行代码的作曲家的第一个任务。这意味着,PHP的任务正在等待一些东西,并没有太多的东西可以在这里考虑。

你是否正在使用xdebug(mayby与一个被遗忘的调试会话)进行调试? xdebug是否在调试会话中运行并在中断点等待?

这可能是根本原因。

+1

我验证了这个解决方案。试图与phpStorm和挂过程。杀掉phpStorm并立即处理完成。 – MarcDeXeT

+1

我也可以确认,通常这是由于PHPStorm正在侦听一个调试连接。根据您使用PHPStorm配置调试会话的方式,任何打开的PHPStorm项目都可能会挂起CLI。确保所有项目都关闭了侦听连接的侦听。 –

0

您收到的错误指出已超出执行脚本的限制时间。定义-d memory_limit=-1只会删除任何内存限制。你应该做的是添加-d max_execution_time=0docs)。这应该能解决你的问题。

+0

执行时间不是问题。我可以选择30秒,300,3000或无限。挂起的过程是问题 – delete