O PhantomJS trava durante muito tempo dizendo “Sessão Assíncrona, fase de limpeza a partir de AGORA”

Aqui está uma captura de canvas:

PhantomJS aguardando algumas chamadas

task : Codeception PHP Testing Framework v1.6.2 Powered by PHPUnit 3.7.19 by Sebastian Bergmann. Suite selenium_acceptance started Trying to see the welcome page of newweather (welcomeCept.php) issue : it sits as it is and waiting for phantomJS to respond and below is what phantomJS screen is showing : [INFO - 2014-03-13T01:42:51.575Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: ca14e740-aa50-11e3-bb6b-75468ba86108 [INFO - 2014-03-13T01:47:42.806Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW [INFO - 2014-03-13T01:52:42.806Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW [INFO - 2014-03-13T01:57:42.806Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW 

E senta na canvas sem resultados.

Isto é o que eu uso:

  • Versão PhantomJS: 1.9.7
  • corre no porto: 4444

Apenas a resposta semi-relacionada que eu consegui encontrar foi a seguinte:

“A fase de limpeza das sessões assíncronas a partir de AGORA … foi causada por algumas chamadas para feeds externos, estas foram intermitentemente lentas. Esta fase deve estar aguardando essas chamadas, que foram tempo limite, mas PhantomJS sentou-se esperando por um muito, muito muito tempo.

Removendo essas chamadas ao testar (com um pequeno bit de JavaScript, se host for localhost e usar um object fofo) resolveu o problema “.

Encontrado aqui: Repetindo “Sessão asynchronous de limpeza fase começando AGORA”

Portanto, o problema provavelmente é causado pelo tempo limite de envio de feed externo / API.

Problema Github: https://github.com/ariya/phantomjs/issues/11526

A solução alternativa que funcionou para mim é definir a capacidade takeScreenshot como falsa.

 DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("takesScreenshot", false); 

Eu tenho o mesmo problema há um ano. Eu encontrei um hack sujo. Eu uso outro servidor com o nginx onde eu proxied todas as consultas para a compilation de teste necessária. Eu redirecionou meus testes para o servidor proxy e agora não tenho esse erro. Os testes funcionam todos os dias desde abril de 2016 e sem erros.