Closed hallandellon closed 7 years ago
Hallan, aparece algum erro nos logs? É difícil diagnosticar sem ver alguma mensagem de erro. Envie os logs, inclusive do PHP. Mas pelo que descreveu, pode ser um problema com requisições externas no seu host, algum bloqueio no Soap, ou algo assim.
Em 21 de dez de 2016 1:53 PM, "Hallan" notifications@github.com escreveu:
Utilizava a versão 4.5. Depois que atualizei para a versão 4.7.2 do módulo, o popup que aparece quando clicamos no link para rastrear, tanto no frontend como no backend abre, porém fica carregando até dar time out. Já alterei o time out do ws no config.xml mas não resolveu. Detalhe: apesar do SUPEE 6788 estar instalado, estou com a função de compatibilidade ativada devido a incompatibilidade com alguns módulos ainda sem solução. Será que pode ser isso?
Versão Magento: 1.9.1 Módulo Correios: 4.7.2
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/pedro-teixeira/correios/issues/204, or mute the thread https://github.com/notifications/unsubscribe-auth/ADhJXml_Om_tFTMxw2a5ZJdF3-LCFreeks5rKUttgaJpZM4LTFvz .
@jarjar123 Verifiquei vários logs e nada de achar uma pista. Porém, através de outro post #176, comecei a ter uma linha de pensamento que poderia estar relacionado ao cron. Foi daí que verifiquei ontem um arquivo do cron do aoe_scheduler e descobri uma pasta tmp que estava na raiz do servidor e que tinha uns arquivos wsdl. Não tinha muita ideia do que fazer, mas vi que as permissões de 2 arquivos estavam para o root. Então, logo que alterei para o usuário do sistema, parece que destravou e voltou a funcionar normalmente. Sabe o que pode ter ocasionado isso?
Olá @hallandellon, que bom que funcionou!
Com a informação que me passou não sei dizer exatamente o que ocorreu. Mas parece estar relacionado com o parâmetro _wsdlcache. Sugiro manter este parâmetro do PHP desativado.
@jarjar123 Estava verificando o rastreamento de algumas encomendas e voltou a ocorrer novamente o looping de carregamento. Verifiquei o arquivo na pasta /tmp e as permissões foram alteradas sozinhas. Alterei novamente para o usuário www-data e voltou a funcionar. Desabilitando o o _wsdlcache não afeta outros recursos do sistema como comunicação com outras APIs? No meu caso estou integrado com o Bling.
Desativar o _wsdlcache não deve comprometer outros recursos ou APIs que utilizam o Soap no PHP. Contudo existe o risco de diminuir a performance das requisições Soap. Mas enfim, talvez isso nem faça diferença no desempenho. E talvez resolva seu problema.
Olá @rafaelpatro
Estou com o mesmo problema, porém desativar o wsdl_cache não resolveu, fiz alguns testes e salvei os logs.
NGINX/error.log
2017/03/08 03:29:18 [error] 9729#9729: *1504 upstream timed out (110: Connection timed out) while reading response header from upstream (fastcgi unix php-fpm.sock)
PHP-FPM/error.log
[08-Mar-2017 03:37:17] WARNING: [pool www] child 11046, script '/.../index.php' (request: "GET /index.php") executing too slow (12.812424 sec), logging
[08-Mar-2017 03:37:17] NOTICE: child 11046 stopped for tracing
[08-Mar-2017 03:37:17] NOTICE: about to trace 11046
[08-Mar-2017 03:37:17] NOTICE: finished trace of 11046
PHP-FPM/slow.log
[08-Mar-2017 03:37:17] [pool www] pid 11046
script_filename = /.../html/index.php
[0x00007fee31215110] SoapClient() /.../app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php:607
[0x00007fee31215040] _getTrackingRequest() /.../app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php:689
[0x00007fee31214f60] _getTracking() /.../app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php:579
[0x00007fee31214ec0] getTracking() /.../app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php:556
[0x00007fee31214e10] getTrackingInfo() /.../app/code/core/Mage/Sales/Model/Order/Shipment/Track.php:153
[0x00007fee31214d60] getNumberDetail() /.../app/code/core/Mage/Shipping/Model/Info.php:123
[0x00007fee31214c40] getTrackingInfoByOrder() /.../app/code/core/Mage/Shipping/Model/Info.php:53
[0x00007fee31214b80] loadByHash() /.../app/code/community/MercadoPago/MercadoEnvios/Model/Observer.php:65
[0x00007fee31214ac0] trackingPopup() /.../app/code/core/Mage/Core/Model/App.php:1358
[0x00007fee312149f0] _callObserverMethod() /.../app/code/core/Mage/Core/Model/App.php:1331
[0x00007fee31214860] dispatchEvent() /.../app/Mage.php:448
[0x00007fee312147b0] dispatchEvent() /.../app/code/core/Mage/Core/Controller/Varien/Action.php:531
[0x00007fee312146e0] preDispatch() /.../app/code/core/Mage/Core/Controller/Front/Action.php:69
[0x00007fee31214660] preDispatch() /.../app/code/core/Mage/Core/Controller/Varien/Action.php:407
[0x00007fee312144e0] dispatch() /.../app/code/core/Mage/Core/Controller/Varien/Router/Standard.php:254
[0x00007fee31214370] match() /.../app/code/core/Mage/Core/Controller/Varien/Front.php:172
[0x00007fee312142b0] dispatch() /.../app/code/core/Mage/Core/Model/App.php:365
[0x00007fee312141e0] run() /.../app/Mage.php:683
[0x00007fee31214100] run() /.../index.php:83~
olá pessoal, estamos com o mesmo problema aqui depois que atualizamos para a versão. Existe alguma maneira de desabilitar este monitoramento automático? estávamos utilizando a versão 4.2 e resolvemos atualizar para 4.7 estamos tendo estes problemas. existe alguma maneira de desabilitar este rastreio automático?
Sim. É bem simples, basta remover a tag cron do arquivo config.xml
Em 13 de mar de 2017 9:17 PM, "Marcos" notifications@github.com escreveu:
olá pessoal, estamos com o mesmo problema aqui depois que atualizamos para a versão. Existe alguma maneira de desabilitar este monitoramento automático? estávamos utilizando a versão 4.2 e resolvemos atualizar para 4.7 estamos tendo estes problemas. existe alguma maneira de desabilitar este rastreio automático?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pedro-teixeira/correios/issues/204#issuecomment-286283750, or mute the thread https://github.com/notifications/unsubscribe-auth/ANLIzHlwaTUfLSNLebndONFYkYUhoT6yks5rldyvgaJpZM4LTFvz .
No meu caso desabilitar o rastreio automático também não resolveu, ao clicar no link para abir o pop-up de rastreamento o erro ocorre novamente.
O problema do wsdl_cache está ocorrendo somente com servidores nginx?
Olá @brenofabio Você consegue testar o SoapClient em um script isolado para ver se funciona no seu servidor?
Tenta algo assim:
$client = new SoapClient('http://webservice.correios.com.br/service/rastro/Rastro.wsdl');
$response = $client->buscaEventos(array(
'usuario' => 'ECT',
'senha' => 'SRO',
'tipo' => 'L',
'resultado' => 'U',
'lingua' => '101',
'objetos' => 'CODIGO_DE_RASTREAMENTO_VALIDO',
));
var_dump($response);
Olá @rafaelpatro Fiz o teste com seu script e deu o mesmo problema, só consegui a resposta depois de 240 segundos.
Retorno:
object(stdClass)#2 (1) { ["return"]=> object(stdClass)#3 (3) { ["versao"]=> string(3) "2.0" ["qtd"]=> string(1) "1" ["objeto"]=> object(stdClass)#4 (5) { ["numero"]=> string(13) "DW892651174BR" ["sigla"]=> string(2) "DW" ["nome"]=> string(30) "ENCOMENDA SEDEX (ETIQ LÓGICA)" ["categoria"]=> string(5) "SEDEX" ["evento"]=> object(stdClass)#5 (10) { ["tipo"]=> string(2) "DO" ["status"]=> string(2) "01" ["data"]=> string(10) "28/03/2017" ["hora"]=> string(5) "17:50" ["descricao"]=> string(19) "Objeto encaminhado " ["local"]=> string(18) "CTE BELO HORIZONTE" ["codigo"]=> string(8) "31276970" ["cidade"]=> string(14) "BELO HORIZONTE" ["uf"]=> string(2) "MG" ["destino"]=> object(stdClass)#6 (5) { ["local"]=> string(12) "CTCE GOIANIA" ["codigo"]=> string(8) "74905970" ["cidade"]=> string(20) "APARECIDA DE GOIANIA" ["bairro"]=> string(13) "VILA BRASILIA" ["uf"]=> string(2) "GO" } } } } }
Segui uma dica no stackoverflow , fiz alguns testes e aparentemente resolveu.
Parece que por causa do keep-alive, a conexão não é fechada e só recebo a resposta após o timeout. Ajustando o cabeçalho da requisição com o _streamcontext dá pra contornar o problema.
Alterei a linha 607 do arquivo CorreiosMethod.php
$client = new SoapClient($this->getConfigData('url_sro_correios'),array(
'stream_context'=>stream_context_create(
array('http'=>
array(
'protocol_version'=>'1.1',
'header' => 'Connection: Close'
)
)
)
));
Olá @brenofabio
Após a alteração que você sugeriu no CorreiosMethod.php, aparentemente resolveu o problema. Vou acompanhar para ver se não volta a ocorrer.
Obrigado pelas informações.
On Wed, Mar 29, 2017 at 1:05 AM, brenofabio notifications@github.com wrote:
Segui uma dica no stackoverflow http://stackoverflow.com/questions/5944067/php-soapclient-constructor-is-very-slow-takes-3-minutes, fiz alguns testes e aparentemente resolveu.
Parece que por causa do keep-alive, a conexão não é fechada e só recebo a resposta após o timeout. Ajustando o cabeçalho da requisição com o stream_context dá pra contornar o problema.
Alterei a linha 607 do arquivo CorreiosMethod.php
$client = new SoapClient($this->getConfigData('url_sro_correios'),array( 'stream_context'=>stream_context_create( array('http'=> array( 'protocol_version'=>'1.1', 'header' => 'Connection: Close' ) ) )));
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pedro-teixeira/correios/issues/204#issuecomment-289976142, or mute the thread https://github.com/notifications/unsubscribe-auth/ADIOQ_JaCHiMgTMFPID01Cwks8NcYd3jks5rqdhygaJpZM4LTFvz .
Bom dia @brenofabio. Que bom que conseguiu resolver.
Envia uma PR com as alterações que vc fez. Tenho certeza que vai ajudar muita gente.
Se possível coloca a versão do Nginx, do PHP, e do SOAP. Pois sabemos que é um problema que não ocorre em todos os ambientes.
@rafaelpatro enviei a PR com as alterações.
Utilizava a versão 4.5. Depois que atualizei para a versão 4.7.2 do módulo, o popup que aparece quando clicamos no link para rastrear, tanto no frontend como no backend abre, porém fica carregando até dar time out. Já alterei o time out do ws no config.xml mas não resolveu. Detalhe: apesar do SUPEE 6788 estar instalado, estou com a função de compatibilidade ativada devido a incompatibilidade com alguns módulos ainda sem solução. Será que pode ser isso?
Versão Magento: 1.9.1 Módulo Correios: 4.7.2