5
respostas

Fatal error por Maximum execution ocasionalmente

Em alguns momentos recebo muito o erro de timeout por tempo maximo de execução, e quando olho no cmd quando levantei a aplicação não mostra o erro e no postman fica naquela espera sem saber o que está acontecendo. Mais quando forço a parada no CMD , ai que vai mostrar no postman o erro, assim como no terminal. Segue a mensagem apresentada no terminal:

obs.: Windows 10 8GB Ram i5, MySQL 8 (Em outro PC com 16GB ram UBUNTU 18.04), PHP 7.3.3, rede local 1gBIT

[Thu Apr 11 15:27:52 2019] [::1]:65440 [200]: /especialidades/2/medicos
2019-04-11T15:39:32-03:00 [info] Matched route "app_medicos_buscaporespecialidade".
[Thu Apr 11 15:40:25 2019] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in D:\PHP\consultorio-alura\vendor\symfony\http-kernel\Log\Logger.php on line 80
[Thu Apr 11 15:40:25 2019] PHP Stack trace:
[Thu Apr 11 15:40:25 2019] PHP   1. {main}() D:\PHP\consultorio-alura\public\index.php:0
[Thu Apr 11 15:40:25 2019] PHP   2. App\Kernel->handle() D:\PHP\consultorio-alura\public\index.php:25
[Thu Apr 11 15:40:25 2019] PHP   3. Symfony\Component\HttpKernel\HttpKernel->handle() D:\PHP\consultorio-alura\vendor\symfony\http-kernel\Kernel.php:198
[Thu Apr 11 15:40:25 2019] PHP   4. Symfony\Component\HttpKernel\HttpKernel->handleRaw() D:\PHP\consultorio-alura\vendor\symfony\http-kernel\HttpKernel.php:67
[Thu Apr 11 15:40:25 2019] PHP   5. Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher->dispatch() D:\PHP\consultorio-alura\vendor\symfony\http-kernel\HttpKernel.php:126
[Thu Apr 11 15:40:25 2019] PHP   6. Symfony\Component\EventDispatcher\EventDispatcher->dispatch() D:\PHP\consultorio-alura\vendor\symfony\event-dispatcher\Debug\TraceableEventDispatcher.php:145
[Thu Apr 11 15:40:25 2019] PHP   7. Symfony\Component\EventDispatcher\EventDispatcher->doDispatch() D:\PHP\consultorio-alura\vendor\symfony\event-dispatcher\EventDispatcher.php:44
[Thu Apr 11 15:40:25 2019] PHP   8. Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke() D:\PHP\consultorio-alura\vendor\symfony\event-dispatcher\EventDispatcher.php:212
[Thu Apr 11 15:40:25 2019] PHP   9. Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest() D:\PHP\consultorio-alura\vendor\symfony\event-dispatcher\Debug\WrappedListener.php:115
[Thu Apr 11 15:40:25 2019] PHP  10. Symfony\Component\HttpKernel\Log\Logger->info() D:\PHP\consultorio-alura\vendor\symfony\http-kernel\EventListener\RouterListener.php:125
[Thu Apr 11 15:40:25 2019] PHP  11. Symfony\Component\HttpKernel\Log\Logger->log() D:\PHP\consultorio-alura\vendor\psr\log\Psr\Log\AbstractLogger.php:113
[Thu Apr 11 15:40:25 2019] [::1]:49258 [500]: /especialidades/2/medicos - Maximum execution time of 30 seconds exceeded in D:\PHP\consultorio-alura\vendor\symfony\http-kernel\Log\Logger.php on line 80
2019-04-11T15:40:25-03:00 [critical] Fatal Error: Maximum execution time of 30 seconds exceeded
2019-04-11T15:40:25-03:00 [debug] Notified event "kernel.exception" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelException".
2019-04-11T15:40:25-03:00 [debug] Notified event "kernel.exception" to listener "Symfony\Component\HttpKernel\EventListener\ExceptionListener::onKernelException".
2019-04-11T15:40:25-03:00 [debug] Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelFinishRequest".
2019-04-11T15:40:25-03:00 [debug] Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onFinishRequest".
2019-04-11T15:40:25-03:00 [debug] Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelFinishRequest".
5 respostas

Oi, Lesliê.

A gente teria que analisar com bastante calma pra entender o que tá acontecendo. No Windows eu tenho notado que é comum o terminal travar alguns processos, e depois liberar quando tento encerrar o mesmo.

Vale ressaltar que esse problema não é com o Symfony e muito menos com PHP. Já tive esse problema com alguns outros frameworks e até outros softwares. =/

Como sou usuário de Linux, não procurei a fundo este problema.

Mas como você disse que esse problema tá acontecendo no Linux, é mais estranho...

Essa stack indica erro de timeout, ou seja, a execução do PHP demorou mais tempo do que o permitido. Talvez o MySQL tenha ficado fora por um tempo, talvez o componente de log tenha tentado acessar um arquivo que estava preso por outro processo no sistema...

Se você quiser ter um ambiente mais controlado e evitar esse tipo de erro, pode usar o Docker com um servidor web (como nginx e apache), mas nas poucas vezes que uso Windows e tenho o problema com o CMD, só mato o processo e subo o php -S de novo. Não é algo que diminua minha produtividade...

O que achei estranho que nesta maquina que está o MySQL não tem nenhum usuário acessando além de mim. E pela configuração da máquina por uma coisa tão simples. O que mais preocupou é adotar esse framework (estou estudando alguns para ter uma escolha mais plausível para não ser induzido em alguns artigos a escolher direto um) em utilizar e possuir esse delay muito alto, pois deveria ao estourar não ficar prendendo o retorno, no caso do POSTMAN. Aconteceu em produção com o sr. algum problema parecido ou foi por ter usado: php -S localhost:8080 -t public dele prender no terminal?

Como eu comentei, o problema é com o CMD do Windows em processos que ficam rodando em primeiro plano. Não é algo do framework.

Você pode pesquisar alguns Benchmarks sobre o symfony e vai ver que em questão de performance, é difícil algum framework moderno competir com ele.

Como eu falei também, caso queira uma visão mais próxima da produção, o ideal seria configurar um servidor (nginx ou apache) pra fazer os testes...

Voltando ao problema que eu tive... Assim como tive com o Symfony, tive com o Laravel. Assim como tive com PHP, tive com servidores pra Node (JS). É um problema do CMD do Windows, aparentemente...

Oi, Lesliê. Dei uma pesquisada e não achei nada a respeito desse erro no Linux.

Você continua tendo? Se sim, como você instalou seu PHP?

Se não tem mais problemas, encontrou algo a respeito? Algum artigo, solução... ?

Abraços e bons estudos!

:-D

Olá, Lesliê! Tudo bem?

Continua tendo o problema?