I have the following code that makes a Guzzle 4.1 request:
$client = new \GuzzleHttp\Client(['defaults/headers/User-Agent' => $userAgentString]);
$retry = 0;
do {
try {
return $client->post($url, $options);
} catch (\Exception $e) {
echo $e->getMessage();
$retry++;
continue;
}
} while ($retry < 3);
It runs happily for quite a while but at random intervals it will sometimes have an issue with the cURL CA file which causes a fatal error due to an uncaught exception. I'm not sure I can do about this because I already have it in a try catch
block.
Here is the error that takes down my Laravel console command:
cURL error 77: error setting certificate verify locations:
CAfile: /home/vagrant/Projects/test.dev/laravel/vendor/guzzlehttp/guzzle/src/cacert.pem
CApath: /etc/ssl/certs (0)
PHP Fatal error: Uncaught exception 'ErrorException' with message 'include(/home/vagrant/Projects/test.dev/laravel/vendor/filp/whoops/src/Whoops/Exception/Inspector.php): failed to open stream: Too many open files' in /home/vagrant/Projects/test.dev/laravel/vendor/composer/ClassLoader.php:382
What I would like to do is not only figure out why Guzzle is getting this cURL error, but also how I can catch it if it crops up in other systems that have this cURL issue so it doesn't just crash the process.