I am using Laravel Queues with beanstalkd. I have following code:
$user_id = Auth::user()->id;
Queue::push(function($job)
{
solve_simplex();
$job->delete();
});
where solve_simplex() is my custom function in php added as extension.
The job is queued all right but when I want to run php artisan queue:work it ends up with:
php artisan queue:work
PHP Fatal error: Call to undefined function solve_simplex() in /var/www/my_site/vendor/jeremeamia/SuperClosure/src/Jeremeamia/SuperClosure/SerializableClosure.php(99) : eval()'d code on line 2
PHP Stack trace:
PHP 1. {main}() /var/www/my_site/artisan:0
PHP 2. Symfony\Component\Console\Application->run() /var/www/my_site/artisan:59
PHP 3. Symfony\Component\Console\Application->doRun() /var/www/my_site/vendor/symfony/console/Symfony/Component/Console/Application.php:121
PHP 4. Symfony\Component\Console\Application->doRunCommand() /var/www/my_site/vendor/symfony/console/Symfony/Component/Console/Application.php:191
PHP 5. Illuminate\Console\Command->run() /var/www/my_site/vendor/symfony/console/Symfony/Component/Console/Application.php:887
PHP 6. Symfony\Component\Console\Command\Command->run() /var/www/my_site/vendor/laravel/framework/src/Illuminate/Console/Command.php:96
PHP 7. Illuminate\Console\Command->execute() /var/www/my_site/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:241
PHP 8. Illuminate\Queue\Console\WorkCommand->fire() /var/www/my_site/vendor/laravel/framework/src/Illuminate/Console/Command.php:108
PHP 9. Illuminate\Queue\Worker->pop() /var/www/my_site/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php:64
PHP 10. Illuminate\Queue\Worker->process() /var/www/my_site/vendor/laravel/framework/src/Illuminate/Queue/Worker.php:71
PHP 11. Illuminate\Queue\Jobs\BeanstalkdJob->fire() /var/www/my_site/vendor/laravel/framework/src/Illuminate/Queue/Worker.php:119
PHP 12. Illuminate\Queue\Jobs\Job->resolveAndFire() /var/www/my_site/vendor/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php:50
PHP 13. IlluminateQueueClosure->fire() /var/www/my_site/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php:96
PHP 14. Jeremeamia\SuperClosure\SerializableClosure->__invoke() /var/www/my_site/vendor/laravel/framework/src/Illuminate/Queue/IlluminateQueueClosure.php:16
PHP 15. ReflectionFunction->invokeArgs() /var/www/my_site/vendor/jeremeamia/SuperClosure/src/Jeremeamia/SuperClosure/SerializableClosure.php:64
PHP 16. Jeremeamia\SuperClosure\SerializableClosure::{closure:/var/www/my_site/vendor/jeremeamia/SuperClosure/src/Jeremeamia/SuperClosure/SerializableClosure.php(99) : eval()'d code:1-4}() / var/www/my_site/vendor/jeremeamia/SuperClosure/src/Jeremeamia/SuperClosure/SerializableClosure.php:64
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Call to undefined function solve_simplex()","file":"\/var\/www\/my_site\/vendor\/jeremeamia\/ SuperClosure\/src\/Jeremeamia\/SuperClosure\/SerializableClosure.php(99) : eval()'d code","line":2}}
UPDATE
it looks like my extension is not loaded. But it does not load only in that closure. If I run the function solve_simpex() in normal laravel code (eg in controller then it works and extension is loaded....
I found a solution. The problem is that superclosure is invoked throught command:
php artisan queue:work
it is invoked through CLI and idk why it does not load extension.
Solution is run artisan with -d parameter:
php -dextension=solveSimplex.so artisan queue:work
So I had to tell php CLI to load that extension...
Related
For complicated reasons, I'm trying to get a Laravel project running that I did not develop. I'm using a Vagrant/Homestead combination (Host Windows 10, VM Homestead v2.1.8 (Ubuntu 18.04.1) with Laravel 5.0.35, PHP 5.6 - that's what it was created in) and after putting the project there and running composer install, I just tried to have a look at the routes via
php artisan route:list
which gave me the error
PHP Fatal error: Call to a member function make() on null in /home/vagrant/code/newbackend/vendor/compiled.php on line 4823
PHP Stack trace:
PHP 1. {main}() /home/vagrant/code/newbackend/artisan:0
PHP 2. Illuminate\Foundation\Console\Kernel->handle() /home/vagrant/code/newbackend/artisan:36
PHP 3. Symfony\Component\Console\Application->run() /home/vagrant/code/newbackend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:94
PHP 4. Symfony\Component\Console\Application->doRun() /home/vagrant/code/newbackend/vendor/symfony/console/Symfony/Component/Console/Application.php:126
PHP 5. Symfony\Component\Console\Application->doRunCommand() /home/vagrant/code/newbackend/vendor/symfony/console/Symfony/Component/Console/Application.php:195
PHP 6. Illuminate\Console\Command->run() /home/vagrant/code/newbackend/vendor/symfony/console/Symfony/Component/Console/Application.php:874
PHP 7. Symfony\Component\Console\Command\Command->run() /home/vagrant/code/newbackend/vendor/laravel/framework/src/Illuminate/Console/Command.php:101
PHP 8. Illuminate\Console\Command->execute() /home/vagrant/code/newbackend/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257
PHP 9. Illuminate\Container\Container->call() /home/vagrant/code/newbackend/vendor/laravel/framework/src/Illuminate/Console/Command.php:115
PHP 10. call_user_func_array:{/home/vagrant/code/newbackend/vendor/compiled.php:964}() /home/vagrant/code/newbackend/vendor/compiled.php:964
PHP 11. Illuminate\Foundation\Console\RouteListCommand->fire() /home/vagrant/code/newbackend/vendor/compiled.php:964
PHP 12. Illuminate\Foundation\Console\RouteListCommand->getRoutes() /home/vagrant/code/newbackend/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:75
PHP 13. Illuminate\Foundation\Console\RouteListCommand->getRouteInformation() /home/vagrant/code/newbackend/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:89
PHP 14. Illuminate\Foundation\Console\RouteListCommand->getMiddleware() /home/vagrant/code/newbackend/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:109
PHP 15. Illuminate\Foundation\Console\RouteListCommand->getControllerMiddleware() /home/vagrant/code/newbackend/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:142
PHP 16. Illuminate\Foundation\Application->make() /home/vagrant/code/newbackend/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:161
PHP 17. Illuminate\Container\Container->make() /home/vagrant/code/newbackend/vendor/compiled.php:1543
PHP 18. Illuminate\Container\Container->build() /home/vagrant/code/newbackend/vendor/compiled.php:1019
PHP 19. Illuminate\Container\Container->getDependencies() /home/vagrant/code/newbackend/vendor/compiled.php:1081
PHP 20. Illuminate\Container\Container->resolveClass() /home/vagrant/code/newbackend/vendor/compiled.php:1095
PHP 21. Illuminate\Foundation\Application->make() /home/vagrant/code/newbackend/vendor/compiled.php:1111
PHP 22. Illuminate\Container\Container->make() /home/vagrant/code/newbackend/vendor/compiled.php:1543
PHP 23. Illuminate\Container\Container->fireResolvingCallbacks() /home/vagrant/code/newbackend/vendor/compiled.php:1029
PHP 24. Illuminate\Container\Container->fireCallbackArray() /home/vagrant/code/newbackend/vendor/compiled.php:1180
PHP 25. Illuminate\Validation\ValidationServiceProvider->Illuminate\Validation\{closure}() /home/vagrant/code/newbackend/vendor/compiled.php:1195
PHP 26. Illuminate\Foundation\Http\FormRequest->validate() /home/vagrant/code/newbackend/vendor/compiled.php:4699
PHP 27. Illuminate\Foundation\Http\FormRequest->getValidatorInstance() /home/vagrant/code/newbackend/vendor/compiled.php:4772
The error leads me to
$factory = $this->container->make('Illuminate\\Validation\\Factory');
in class FormRequest (extends Request implements ValidatesWhenResolved) on line 4823 in vendor/compiled.php - but that's not telling me much.
As I'm new to Php/laravel and don't quite have a handle on the intricacies of this project, my googling efforts left me more confused than ever. Does anyone have at least a starting point for me on how to resolve this?
I'm having a bit of a problem with Laravel's artisan commands and more specifically with artisan route:list. When I execute this command, the result is the following :
PHP Fatal error: Maximum function nesting level of '256' reached, aborting! in /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 950
PHP Stack trace:
PHP 1. {main}() /Users/sa7bi/Code/smartly/artisan:0
PHP 2. Illuminate\Foundation\Console\Kernel->handle() /Users/sa7bi/Code/smartly/artisan:35
PHP 3. Symfony\Component\Console\Application->run() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:123
PHP 4. Symfony\Component\Console\Application->doRun() /Users/sa7bi/Code/smartly/vendor/symfony/console/Application.php:120
PHP 5. Symfony\Component\Console\Application->doRunCommand() /Users/sa7bi/Code/smartly/vendor/symfony/console/Application.php:189
PHP 6. Illuminate\Console\Command->run() /Users/sa7bi/Code/smartly/vendor/symfony/console/Application.php:826
PHP 7. Symfony\Component\Console\Command\Command->run() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Console/Command.php:167
PHP 8. Illuminate\Console\Command->execute() /Users/sa7bi/Code/smartly/vendor/symfony/console/Command/Command.php:262
PHP 9. Illuminate\Container\Container->call() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Console/Command.php:182
PHP 10. Illuminate\Container\BoundMethod::call() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Container/Container.php:524
PHP 11. Illuminate\Container\BoundMethod::callBoundMethod() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:30
PHP 12. value() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:86
PHP 13. Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Support/helpers.php:912
PHP 14. call_user_func_array:{/Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:28}() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:28
PHP 15. Illuminate\Foundation\Console\RouteListCommand->fire() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:28
PHP 16. Illuminate\Foundation\Console\RouteListCommand->getRoutes() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:75
PHP 17. Illuminate\Support\Collection->map() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:87
PHP 18. array_map() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Support/Collection.php:636
PHP 19. Illuminate\Foundation\Console\RouteListCommand->Illuminate\Foundation\Console\{closure}() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Support/Collection.php:636
PHP 20. Illuminate\Foundation\Console\RouteListCommand->getRouteInformation() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:86
PHP 21. Illuminate\Foundation\Console\RouteListCommand->getMiddleware() /Users/sa7bi/Code/smartly/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:114
I've tried bumping up the number of nested level with xdebug.max_nesting_level but without success.
The link to my repo is here if anyone is intested.
This might help: https://stackoverflow.com/a/30839127/4617687
Apparently changing this value at runtime also helps.
I have everything configured but when I run the tests it fails with this error log:
/usr/bin/php /tmp/ide-phpunit.php --bootstrap /home/lchost/EOSS2/tests/bootstrap.php --no-configuration /home/lchost/EOSS2/tests
Testing started at 9:02 PM ...
PHP Notice: Undefined variable: argv in /tmp/ide-phpunit.php(191) : eval()'d code on line 1
PHP Stack trace:
PHP 1. {main}() /tmp/ide-phpunit.php:0
PHP 2. IDE_PHPUnit_Loader::init() /tmp/ide-phpunit.php:250
PHP 3. eval() /tmp/ide-phpunit.php:191
This version of PHPUnit is supported on PHP 5.6, PHP 7.0, and PHP 7.1.
You are using PHP 5.5.9-1ubuntu4.20 (/usr/bin/php5).
What should I do? I was trying to update php5.5.9 to php5.6 but unsuccessful.
For the Notice message, from PHP for argv variable.
enable register_argc_argv in you php.ini file.
And for testing, upgrade your php.
You are getting Notice that will not affect your execution of the test. So thats not a problem for the PHPUnit.
I'm having issues finding the source of an error I'm receiving in PHPUnit. If I run phpunit with no filter I will receive the "bytes exhausted" error.
however if I run my tests one at a time with phpunit --filter test_name - all of my test will pass.
The stack trace posted below indicates a problem with one of my tests called KInit however if run that test by itself everything passes.
I have also tried to move the test out of the directory but the error will simply point to the next test that is run. I have also tried running with sudo which did not work any better.
How can I get more information on whats happening here?
I'm running PHPUint to test a laravel 4.2 app.
versions of stuff
PHPUnit 4.1.4
PHP 5.5.18
Ubuntu 12.04 64-bit
The stack trace below says the error is in:
laravel/framework/src/Illuminate/Filesystem/Filesystem.php
however sometimes it reads
/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php
Full stack trace:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 15886 bytes) in /opt/pplus/laravel/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php on line 31
PHP Stack trace:
PHP 1. {main}() /usr/local/bin/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /usr/local/bin/phpunit:586
PHP 3. PHPUnit_TextUI_Command->run() phar:///usr/local/bin/phpunit/phpunit/TextUI/Command.php:132
PHP 4. PHPUnit_TextUI_TestRunner->doRun() phar:///usr/local/bin/phpunit/phpunit/TextUI/Command.php:179
PHP 5. PHPUnit_Framework_TestSuite->run() phar:///usr/local/bin/phpunit/phpunit/TextUI/TestRunner.php:426
PHP 6. PHPUnit_Framework_TestSuite->run() phar:///usr/local/bin/phpunit/phpunit/Framework/TestSuite.php:675
PHP 7. PHPUnit_Framework_TestSuite->run() phar:///usr/local/bin/phpunit/phpunit/Framework/TestSuite.php:675
PHP 8. PHPUnit_Framework_TestCase->run() phar:///usr/local/bin/phpunit/phpunit/Framework/TestSuite.php:675
PHP 9. PHPUnit_Framework_TestResult->run() phar:///usr/local/bin/phpunit/phpunit/Framework/TestCase.php:758
PHP 10. PHPUnit_Framework_TestCase->runBare() phar:///usr/local/bin/phpunit/phpunit/Framework/TestResult.php:686
PHP 11. KInitTest->setUp() phar:///usr/local/bin/phpunit/phpunit/Framework/TestCase.php:818
PHP 12. TestCase->setUp() /opt/pplus/laravel/app/tests/unit/classes/KInit/KInitTest.php:16
PHP 13. Illuminate\Foundation\Testing\TestCase->setUp() /opt/pplus/laravel/app/tests/TestCase.php:35
PHP 14. Illuminate\Foundation\Testing\TestCase->refreshApplication() /opt/pplus/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:31
PHP 15. TestCase->createApplication() /opt/pplus/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:42
PHP 16. require() /opt/pplus/laravel/app/tests/TestCase.php:17
PHP 17. require() /opt/pplus/laravel/bootstrap/start.php:60
PHP 18. Illuminate\Foundation\ProviderRepository->load() /opt/pplus/laravel/vendor/laravel/framework/src/Illuminate/Foundation/start.php:210
PHP 19. Illuminate\Foundation\ProviderRepository->loadManifest() /opt/pplus/laravel/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:51
PHP 20. Illuminate\Filesystem\Filesystem->get() /opt/pplus/laravel/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:187
PHP 21. file_get_contents() /opt/pplus/laravel/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:31
I found the answer. I had to increase the memory_limit in /etc/php5/cli/php.ini. I always forget the phpunit uses a different ini file than apache.
I have a fresh install of laravel 4.2 After playing around a little bit with creating some routes I ended up enable to run the command "php artisan routes" in order to list all the available routes of my app. The error messages :
PHP Fatal error: Call to a member function render() on a non-object in /Users/imac/Sites/my-app/vendor/laravel/framework/src/Illuminate/Console/Command.php on line 276
PHP Stack trace:
PHP 1. {main}() /Users/imac/Sites/my-app/artisan:0
PHP 2. Symfony\Component\Console\Application->run() /Users/imac/Sites/my-app/artisan:59
PHP 3. Symfony\Component\Console\Application->doRun() /Users/imac/Sites/my-app/vendor/symfony/console/Symfony/Component/Console/Application.php:124
PHP 4. Symfony\Component\Console\Application->doRunCommand() /Users/imac/Sites/my-app/vendor/symfony/console/Symfony/Component/Console/Application.php:193
PHP 5. Illuminate\Console\Command->run() /Users/imac/Sites/my-app/vendor/symfony/console/Symfony/Component/Console/Application.php:897
PHP 6. Symfony\Component\Console\Command\Command->run() /Users/imac/Sites/my-app/vendor/laravel/framework/src/Illuminate/Console/Command.php:100
PHP 7. Illuminate\Console\Command->execute() /Users/imac/Sites/my-app/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:252
PHP 8. Illuminate\Foundation\Console\RoutesCommand->fire() /Users/imac/Sites/my-app/vendor/laravel/framework/src/Illuminate/Console/Command.php:112
PHP 9. Illuminate\Foundation\Console\RoutesCommand->displayRoutes() /Users/imac/Sites/my-app/vendor/laravel/framework/src/Illuminate/Foundation/Console/RoutesCommand.php:74
PHP 10. Illuminate\Console\Command->table() /Users/imac/Sites/my-app/vendor/laravel/framework/src/Illuminate/Foundation/Console/RoutesCommand.php:123
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Call to a member function render() on a non-object","file":"\/Users\/imac\/Sites\/my-app\/vendor\/laravel\/framework\/src\/Illuminate\/Console\/Command.php","line":276}}
I ended up reverting all the routes.php and keep this only route :
Route::get('/', function()
{
return "Homepage here";
});
I have googling a lot but nobody seemed to have already encounter this kind of error.
I can confirm there's a bug on 4.2. I just:
git clone -b develop https://github.com/laravel/laravel.git
composer update
php artisan routes
And got the very same error.
Just posted an issue: https://github.com/laravel/laravel/issues/2892
please make sure that in your routes.php file you have Route::resource('[routename]','[controllername]'); you can check more in their docs here laravel docs on controllers