- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How to Debugging PHP Infinite loop
There are situations in Magento 2 when page keeps loading and then you get 500 fatal error, memory limit, or timeout error.
How to debug this issue ?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: How to Debugging PHP Infinite loop
To debug an infinite loop and find the loop entrance, please follow the steps below:
1. Open the app/bootstrap.php file and add this code right after PHP open tag <?php in the next line $_SERVER['MAGE_PROFILER'] = 'html';
2. Open the vendor/magento/framework/Profiler.php file and add this code to the beginning of "public static function start($timerName, array $tags = null)" function,
e.g.
public static function start($timerName, array $tags = null) { if (!self::$firsttime) { self::$firsttime = time(); } if (time() - self::$firsttime > 10) { //10 - is seconds to wait \Magento\Framework\Debug::backtrace(false, true, false); // Magento 2 Debug Backtrace exit(); }
3. Open the page with the loop issue.
4. Check the backtrace information to get an idea of the code creating a loop. Pay attention to the custom extension, you should see their methods over and over again in the backtrace.
5. Once it is done, don't forget to revert changes in bootstrap.php and Profiler.php
LitCommerce - The Most Simple & Affordable Multi-channel Selling Tool