PhpMetrics
PhpMetrics copied to clipboard
Xdebug has detected a possible infinite loop,
Bug report
PhpMetrics v2.7.4
...PHP Fatal error: Uncaught Error: Xdebug has detected a possible infinite loop, and aborted your script with a stack depth of '3000' frames in /third_party/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php:28
third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(110): PhpParser\Node\Expr\BinaryOp->getSubNodeNames()
third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
/third_party/phpmetrics/phpmetrics/src/Hal/Component/Ast/Php7NodeTraverser.php(25): PhpParser\NodeTraverser->traverseNode()
/third_party/nikic/php-parser/lib/PhpParser/NodeTraverser.php(146): Hal\Component\Ast\Php7NodeTraverser->traverseNode()
Tips on how to debug?
Looks like this file breaks the parser: https://github.com/LimeSurvey/LimeSurvey/blob/master/application/helpers/Zend/Validate/Hostname/Biz.php
Maybe it's just too weird? Remove infinite loop check?
Hm, setting xdebug.max_nesting_level to -1 in php.ini does not resolve the issue.
@olleharstedt It might have been due to PhpParser. In v3.0.0rc4, we are using an updated version of PhpParser. Could you please give it a try and check if the issue still occurs?
Thanks a lot.