Open elazar opened 10 years ago
@elazar Any steps to reproduce this?
@WyriHaximus I encountered it while issuing a deploy
command implemented in this plugin. Sadly, it requires special configuration and an AWS account, so I'm not sure I can easily provide steps to reproduce. Hopefully the plugin code gives you some idea of what might be going on, though.
Haven't seen any recent recurrences of this issue. Closing.
Looks like someone else was able to replicate this.
<?php
// ...
ini_set('xdebug.max_nesting_level', 100);
$plugins = [
new \Phergie\Irc\Plugin\React\Pong\Plugin,
new \WyriHaximus\Phergie\Plugin\Dns\Plugin(['enableCommand' => true]),
new \WyriHaximus\Phergie\Plugin\Http\Plugin,
new \Chrismou\Phergie\Plugin\PingPong\Plugin,
new \Phergie\Irc\Plugin\React\Command\Plugin(['prefix' => '!']),
new \Phergie\Irc\Plugin\React\AutoJoin\Plugin(['channels'=>'#tests']),
new \Test\Plugin
];
return array(
'connections' => [$conn],
'plugins' => $plugins
);
<?php
// @codingStandardsIgnoreFile
namespace Test;
use Phergie\Irc\Bot\React\AbstractPlugin;
use Phergie\Irc\Bot\React\EventQueueInterface as Queue;
use Phergie\Irc\Plugin\React\Command\CommandEventInterface as Event;
class Plugin extends AbstractPlugin
{
public function getSubscribedEvents()
{
return [
'command.flood' => 'flood'
];
}
public function flood($event, $queue)
{
$limit = $event->getCustomParams()[0];
$channel = $event->getSource();
for ($x = 0; $x <= $limit; $x++) {
$queue->ircPrivmsg($channel, $x);
}
}
}
PHP Fatal error: Maximum function nesting level of '100' reached, aborting! in /home/zro/projects/php/pherg/test/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php on line 58
PHP Stack trace:
PHP 1. {main}() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/bin/phergie:0
PHP 2. Phergie\Irc\Bot\React\Bot->run() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/bin/phergie:28
PHP 3. Phergie\Irc\Client\React\Client->run() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:236
PHP 4. React\EventLoop\StreamSelectLoop->run() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:730
PHP 5. React\EventLoop\StreamSelectLoop->waitForStreamActivity() /home/zro/projects/php/pherg/test/vendor/react/event-loop/StreamSelectLoop.php:201
PHP 6. call_user_func:{/home/zro/projects/php/pherg/test/vendor/react/event-loop/StreamSelectLoop.php:227}() /home/zro/projects/php/pherg/test/vendor/react/event-loop/StreamSelectLoop.php:227
PHP 7. React\SocketClient\SecureStream->handleData() /home/zro/projects/php/pherg/test/vendor/react/event-loop/StreamSelectLoop.php:227
PHP 8. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/react/socket-client/src/SecureStream.php:48
PHP 9. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 10. React\Stream\Util::React\Stream\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 11. Phergie\Irc\Client\React\ReadStream->write() /home/zro/projects/php/pherg/test/vendor/react/stream/src/Util.php:18
PHP 12. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/ReadStream.php:77
PHP 13. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 14. Phergie\Irc\Client\React\Client->Phergie\Irc\Client\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 15. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:424
PHP 16. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 17. Phergie\Irc\Bot\React\Bot->Phergie\Irc\Bot\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 18. Phergie\Irc\Bot\React\Bot->processClientEvent() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:454
PHP 19. Phergie\Irc\Bot\React\Bot->processOutgoingEvents() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:495
PHP 20. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531}() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 21. Phergie\Irc\Client\React\WriteStream->ircPrivmsg() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 22. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/WriteStream.php:395
PHP 23. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 24. Phergie\Irc\Client\React\Client->Phergie\Irc\Client\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 25. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:442
PHP 26. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 27. Phergie\Irc\Bot\React\Bot->Phergie\Irc\Bot\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 28. Phergie\Irc\Bot\React\Bot->processClientEvent() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:463
PHP 29. Phergie\Irc\Bot\React\Bot->processOutgoingEvents() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:495
PHP 30. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531}() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 31. Phergie\Irc\Client\React\WriteStream->ircPrivmsg() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 32. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/WriteStream.php:395
PHP 33. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 34. Phergie\Irc\Client\React\Client->Phergie\Irc\Client\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 35. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:442
PHP 36. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 37. Phergie\Irc\Bot\React\Bot->Phergie\Irc\Bot\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 38. Phergie\Irc\Bot\React\Bot->processClientEvent() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:463
PHP 39. Phergie\Irc\Bot\React\Bot->processOutgoingEvents() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:495
PHP 40. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531}() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 41. Phergie\Irc\Client\React\WriteStream->ircPrivmsg() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 42. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/WriteStream.php:395
PHP 43. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 44. Phergie\Irc\Client\React\Client->Phergie\Irc\Client\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 45. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:442
PHP 46. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 47. Phergie\Irc\Bot\React\Bot->Phergie\Irc\Bot\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 48. Phergie\Irc\Bot\React\Bot->processClientEvent() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:463
PHP 49. Phergie\Irc\Bot\React\Bot->processOutgoingEvents() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:495
PHP 50. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531}() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 51. Phergie\Irc\Client\React\WriteStream->ircPrivmsg() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 52. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/WriteStream.php:395
PHP 53. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 54. Phergie\Irc\Client\React\Client->Phergie\Irc\Client\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 55. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:442
PHP 56. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 57. Phergie\Irc\Bot\React\Bot->Phergie\Irc\Bot\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 58. Phergie\Irc\Bot\React\Bot->processClientEvent() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:463
PHP 59. Phergie\Irc\Bot\React\Bot->processOutgoingEvents() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:495
PHP 60. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531}() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 61. Phergie\Irc\Client\React\WriteStream->ircPrivmsg() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 62. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/WriteStream.php:395
PHP 63. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 64. Phergie\Irc\Client\React\Client->Phergie\Irc\Client\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 65. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:442
PHP 66. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 67. Phergie\Irc\Bot\React\Bot->Phergie\Irc\Bot\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 68. Phergie\Irc\Bot\React\Bot->processClientEvent() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:463
PHP 69. Phergie\Irc\Bot\React\Bot->processOutgoingEvents() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:495
PHP 70. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531}() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 71. Phergie\Irc\Client\React\WriteStream->ircPrivmsg() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 72. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/WriteStream.php:395
PHP 73. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 74. Phergie\Irc\Client\React\Client->Phergie\Irc\Client\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 75. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:442
PHP 76. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 77. Phergie\Irc\Bot\React\Bot->Phergie\Irc\Bot\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 78. Phergie\Irc\Bot\React\Bot->processClientEvent() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:463
PHP 79. Phergie\Irc\Bot\React\Bot->processOutgoingEvents() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:495
PHP 80. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531}() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 81. Phergie\Irc\Client\React\WriteStream->ircPrivmsg() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 82. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/WriteStream.php:395
PHP 83. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 84. Phergie\Irc\Client\React\Client->Phergie\Irc\Client\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 85. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:442
PHP 86. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 87. Phergie\Irc\Bot\React\Bot->Phergie\Irc\Bot\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 88. Phergie\Irc\Bot\React\Bot->processClientEvent() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:463
PHP 89. Phergie\Irc\Bot\React\Bot->processOutgoingEvents() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:495
PHP 90. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531}() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 91. Phergie\Irc\Client\React\WriteStream->ircPrivmsg() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-bot-react/src/Bot.php:531
PHP 92. Evenement\EventEmitter->emit() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/WriteStream.php:395
PHP 93. call_user_func_array:{/home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 94. Phergie\Irc\Client\React\Client->Phergie\Irc\Client\React\{closure}() /home/zro/projects/php/pherg/test/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php:64
PHP 95. call_user_func:{/home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:332}() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:332
PHP 96. Monolog\Logger->debug() /home/zro/projects/php/pherg/test/vendor/phergie/phergie-irc-client-react/src/Client.php:332
PHP 97. Monolog\Logger->addRecord() /home/zro/projects/php/pherg/test/vendor/monolog/monolog/src/Monolog/Logger.php:481
PHP 98. Monolog\Handler\AbstractProcessingHandler->handle() /home/zro/projects/php/pherg/test/vendor/monolog/monolog/src/Monolog/Logger.php:289
PHP 99. Monolog\Formatter\LineFormatter->format() /home/zro/projects/php/pherg/test/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:35
PHP 100. Monolog\Formatter\NormalizerFormatter->format() /home/zro/projects/php/pherg/test/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php:70
I'm guessing the repetition in the call stack is implying there's a circular use of recursion. If that's the case, we may want to look into implementing the trampoline pattern instead.
The repeated sequence appears to start at step 14 in the call stack below and spans 10 steps.
Here's a snippet of a single repetition: