rector-symfony icon indicating copy to clipboard operation
rector-symfony copied to clipboard

"System error: "Internal error." when using Symfony rules

Open kdenekadtiq opened this issue 2 years ago • 2 comments

Subject Details
Rector version 0.14.4

Applied rules: SymfonySetList::SYMFONY_54, SymfonySetList::SYMFONY_CODE_QUALITY, SymfonySetList::SYMFONY_CONSTRUCTOR_INJECTION,

Error: [ERROR] Could not process "/Users/krzysztofdeneka/htdocs/emoleasing/src/Controller/SelfEmployedController.php" file, due to: "System error: "Internal error."

     Stack trace:                                                                                                   
     #0 phar://vendor/rector/rector/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(306):    
     PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\ClassMethod),                   
     Object(PHPStan\Analyser\MutatingScope), Object(Closure))                                                       
     #1 vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php(298):             
     PHPStan\Analyser\NodeScopeResolver->processNodes(Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
     #2 vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php(212):             
     Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver->processNodesWithDependentFiles('/Users/krzyszto...',
     Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))                                                
     #3 vendor/rector/rector/src/Application/ChangedNodeScopeRefresher.php(95):                                     
     Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver->processNodes(Array, '/Users/krzyszto...',      
     Object(PHPStan\Analyser\MutatingScope))                                                                        
     #4 vendor/rector/rector/src/Rector/AbstractScopeAwareRector.php(38):                                           
     Rector\Core\Application\ChangedNodeScopeRefresher->refresh(Object(PhpParser\Node\Stmt\ClassMethod),            
     Object(PHPStan\Analyser\MutatingScope), '/Users/krzyszto...')                                                  
     #5 vendor/rector/rector/src/Rector/AbstractRector.php(213):                                                    
     Rector\Core\Rector\AbstractScopeAwareRector->refactor(Object(PhpParser\Node\Stmt\ClassMethod))                 
     #6 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(176):                          
     Rector\Core\Rector\AbstractRector->enterNode(Object(PhpParser\Node\Stmt\ClassMethod))                          
     #7 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(105):                          
     PhpParser\NodeTraverser->traverseArray(Array)                                                                  
     #8 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(196):                          
     PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Class_))                                      
     #9 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(105):                          
     PhpParser\NodeTraverser->traverseArray(Array)                                                                  
     #10 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(196):                         
     PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Namespace_))                                  
     #11 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(85):                          
     PhpParser\NodeTraverser->traverseArray(Array)                                                                  
     #12 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(42):                              
     PhpParser\NodeTraverser->traverse(Array)                                                                       
     #13 vendor/rector/rector/src/Application/FileProcessor.php(60):                                                
     Rector\Core\PhpParser\NodeTraverser\RectorNodeTraverser->traverse(Array)                                       
     #14 vendor/rector/rector/src/Application/FileProcessor/PhpFileProcessor.php(133):                              
     Rector\Core\Application\FileProcessor->refactor(Object(Rector\Core\ValueObject\Application\File),              
     Object(Rector\Core\ValueObject\Configuration))                                                                 
     #15 vendor/rector/rector/src/Application/FileProcessor/PhpFileProcessor.php(100):                              
     Rector\Core\Application\FileProcessor\PhpFileProcessor->refactorNodesWithRectors(Object(Rector\Core\ValueObject\Applica
     tion\File), Object(Rector\Core\ValueObject\Configuration))                                                     
     #16 vendor/rector/rector/packages/Parallel/WorkerRunner.php(98):                                               
     Rector\Core\Application\FileProcessor\PhpFileProcessor->process(Object(Rector\Core\ValueObject\Application\File),
     Object(Rector\Core\ValueObject\Configuration))                                                                 
     #17 vendor/rector/rector/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):                   
     Rector\Parallel\WorkerRunner->Rector\Parallel\{closure}(Array)                                                 
     #18 vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php(110):                                        
     RectorPrefix202209\Evenement\EventEmitter->emit('data', Array)                                                 
     #19 vendor/rector/rector/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):                   
     RectorPrefix202209\Clue\React\NDJson\Decoder->handleData(Array)                                                
     #20 vendor/rector/rector/vendor/react/stream/src/Util.php(62): RectorPrefix202209\Evenement\EventEmitter->emit('data',
     Array)                                                                                                         
     #21 vendor/rector/rector/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):                   
     RectorPrefix202209\React\Stream\Util::RectorPrefix202209\React\Stream\{closure}('{"action":"main...')          
     #22 vendor/rector/rector/vendor/react/stream/src/DuplexResourceStream.php(154):                                
     RectorPrefix202209\Evenement\EventEmitter->emit('data', Array)                                                 
     #23 vendor/rector/rector/vendor/react/event-loop/src/StreamSelectLoop.php(201):                                
     RectorPrefix202209\React\Stream\DuplexResourceStream->handleData(Resource id #2716)                            
     #24 vendor/rector/rector/vendor/react/event-loop/src/StreamSelectLoop.php(173):                                
     RectorPrefix202209\React\EventLoop\StreamSelectLoop->waitForStreamActivity(NULL)                               
     #25 vendor/rector/rector/src/Console/Command/WorkerCommand.php(63):                                            
     RectorPrefix202209\React\EventLoop\StreamSelectLoop->run()                                                     
     #26 vendor/rector/rector/vendor/symfony/console/Command/Command.php(307):                                      
     Rector\Core\Console\Command\WorkerCommand->execute(Object(RectorPrefix202209\Symfony\Component\Console\Input\ArgvInput)
     , Object(RectorPrefix202209\Symfony\Component\Console\Output\ConsoleOutput))                                   
     #27 vendor/rector/rector/vendor/symfony/console/Application.php(894):                                          
     RectorPrefix202209\Symfony\Component\Console\Command\Command->run(Object(RectorPrefix202209\Symfony\Component\Console\I
     nput\ArgvInput), Object(RectorPrefix202209\Symfony\Component\Console\Output\ConsoleOutput))                    
     #28 vendor/rector/rector/vendor/symfony/console/Application.php(310):                                          
     RectorPrefix202209\Symfony\Component\Console\Application->doRunCommand(Object(Rector\Core\Console\Command\WorkerCommand
     ), Object(RectorPrefix202209\Symfony\Component\Console\Input\ArgvInput),                                       
     Object(RectorPrefix202209\Symfony\Component\Console\Output\ConsoleOutput))                                     
     #29 vendor/rector/rector/src/Console/ConsoleApplication.php(49):                                               
     RectorPrefix202209\Symfony\Component\Console\Application->doRun(Object(RectorPrefix202209\Symfony\Component\Console\Inp
     ut\ArgvInput), Object(RectorPrefix202209\Symfony\Component\Console\Output\ConsoleOutput))                      
     #30 vendor/rector/rector/vendor/symfony/console/Application.php(208):                                          
     Rector\Core\Console\ConsoleApplication->doRun(Object(RectorPrefix202209\Symfony\Component\Console\Input\ArgvInput),
     Object(RectorPrefix202209\Symfony\Component\Console\Output\ConsoleOutput))                                     
     #31 vendor/rector/rector/bin/rector.php(128): RectorPrefix202209\Symfony\Component\Console\Application->run()  
     #32 vendor/rector/rector/bin/rector(4): require_once('/Users/krzyszto...')                                     
     #33 vendor/bin/rector(115): include('/Users/krzyszto...')                                                      
     #34 {main}". On line: 376 

I'm afraid I cannot post content of "SelfEmployedController.php" because of NDA.

kdenekadtiq avatar Sep 28 '22 08:09 kdenekadtiq

Thank you for your report!

We'll need an isolated failing demo link from: http://getrector.org/demo, that way we can reproduce the bug.

Exact code is not needed (never paste your exact code anywhere), just minimum lines that cause it. It's usually 2-3 lines :)

TomasVotruba avatar Sep 28 '22 15:09 TomasVotruba

I run into the same problem (with 0.14.5). Even if I tried to reproduce it at the demo page, I was not able to got no error there. However I started commenting out the whole file and track down to a single line of code where rector may fail and it ended up at this line. If I comment it out, the command executes well. If this line is active, rector command fails with the exact error above.

$folder = $this->getParameter("kernel.project_dir") . "/src/Model/schema/"; // Get this line commented out to have rector running well
$doc = new \DOMDocument();
$doc->load($folder . $filename);

The whole function is pasted here https://getrector.org/demo/c951e28b-e939-4059-9d13-be1454f81f51

csabavirag avatar Oct 05 '22 08:10 csabavirag

Closing as Rector 0.17 is out now. Feel free to re-open if the issue is still there, but with reproducible Github repository, so we can spot the place and fix it.

TomasVotruba avatar Jun 24 '23 08:06 TomasVotruba