Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is Composer Install Failing All of the Sudden?

I'm running composer install in my local env and in production env and they are both failing. This just started today. I've reviewed the code changes and the composer files haven't changed. Can anyone shed some light on this...i have no idea what it could be. I thought github was down or something but I do get some packages installed successfully. I'm getting errors like this:

...

  • Installing phpunit/php-timer (2.1.2): Downloading (100%)
  • Installing phpunit/php-text-template (1.2.1): Downloading (100%)
  • Installing phpunit/php-file-iterator (2.0.2): Downloading (0%) Failed to download phpunit/php-file-iterator from dist: Could not authenticate against github.com Now trying to download from source
  • Installing phpunit/php-file-iterator (2.0.2): Cloning 050bedf145 from cache
  • Installing theseer/tokenizer (1.1.3): Downloading (0%) Failed to download theseer/tokenizer from dist: Could not authenticate against github.com Now trying to download from source
  • Installing theseer/tokenizer (1.1.3): Cloning 11336f6f84 from cache
  • Installing sebastian/code-unit-reverse-lookup (1.0.1): Downloading (0%) Failed to download sebastian/code-unit-reverse-lookup from dist: Could not authenticate against github.com Now trying to download from source
  • Installing sebastian/code-unit-reverse-lookup (1.0.1): Cloning 4419fcdb5e from cache
  • Installing phpunit/php-code-coverage (6.1.4): Downloading (0%) Failed to download phpunit/php-code-coverage from dist: Could not authenticate against github.com Now trying to download from source
  • Installing phpunit/php-code-coverage (6.1.4): Cloning 807e6013b0 from cache
  • Installing doctrine/instantiator (1.3.0): Downloading (0%) Failed to download doctrine/instantiator from dist: Could not authenticate against github.com Now trying to download from source
  • Installing doctrine/instantiator (1.3.0): Cloning ae466f7262 from cache
  • Installing phpspec/prophecy (v1.10.2): Downloading (0%) Failed to download phpspec/prophecy from dist: Could not authenticate against github.com Now trying to download from source
  • Installing phpspec/prophecy (v1.10.2): Cloning b4400efc9d from cache
  • Installing phar-io/version (2.0.1): Downloading (0%) Failed to download phar-io/version from dist: Could not authenticate against github.com Now trying to download from source
  • Installing phar-io/version (2.0.1): Cloning 45a2ec53a7 from cache
  • Installing phar-io/manifest (1.0.3): Downloading (0%) Failed to download phar-io/manifest from dist: Could not authenticate against github.com Now trying to download from source
  • Installing phar-io/manifest (1.0.3): Cloning 7761fcacf0 from cache
  • Installing myclabs/deep-copy (1.9.5): Downloading (0%) Failed to download myclabs/deep-copy from dist: Could not authenticate against github.com Now trying to download from source
  • Installing myclabs/deep-copy (1.9.5): Cloning b2c28789e8 from cache
  • Installing phpunit/phpunit (7.5.20): Downloading (0%) Failed to download phpunit/phpunit from dist: Could not authenticate against github.com Now trying to download from source
  • Installing phpunit/phpunit (7.5.20): Cloning 9467db479d

[Symfony\Component\Process\Exception\ProcessTimedOutException]
The process "git clone --no-checkout 'https://github.com/sebastianbergmann/phpunit.git' '/var/www/vendor/phpunit/phpunit' && cd '/var/www/vendor/phpunit/phpunit' && git remote add composer 'https://github.com/sebastianbergmann/phpunit.git' && git fetch composer && git remote set-url origin 'https://github.com/sebastianbergmann/phpunit.git' && git remote set-url composer 'https://github.com/sebastianbergmann/phpunit.git'" exceeded the timeout of 300 seconds. > install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--] []...

ERROR: Service 'contianer_name' failed to build: The command '/bin/sh -c composer install && rm $(which composer)' returned a non-zero code: 1

like image 406
Chris Avatar asked Jan 25 '23 05:01

Chris


1 Answers

We've been seeing the same, and suspect its either a change in Composer behaviour since 1.10, or changes to rate limits on the GitHub side.

It looks like it first attempts HTTP downloads (it really doesn't help that Composer doesn't show the exact HTTP error), and then falls back to cloning source. The latter works for a while, but then also results in timeouts, possibly because GitHub is limiting these as well.

Either way, what fixed it for us is making sure Composer HTTP requests to GitHub are authenticated. See the docs here: https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens

  1. Create an OAuth token on GitHub. Read more on this.

  2. Add it to the configuration running composer config -g github-oauth.github.com <oauthtoken>

like image 126
Stéphan Kochen Avatar answered Jan 28 '23 10:01

Stéphan Kochen