Tengo un problema cuando una instancia de webkit_server con Capybara y capybara-webkit ejecutándose sin conexión conectada a una pantalla Xvfb local se cuelga al visitar una URL. Parece que sucede después de varios minutos de visitas repetidas a diferentes URL y ejecución de buscadores. (Estoy usando capibara para una aplicación de raspado de pantalla en Ruby vainilla, no para probar)webkit_server se cuelga periódicamente cuando se ejecuta desde Capybara en Ruby
He confirmado que cuando se cuelga el sitio aún está accesible (por ejemplo, mediante curl o wget en la línea de comandos) . También intenté ajustar el código de Ruby que invoca la visita y los buscadores posteriores en un bloque Timeout para que después de 60 segundos de espera se visite una nueva URL, pero cualquier intento de visita() falla después de la primera vez que esto ocurre. La única forma de solucionar el problema es eliminar el proceso Ruby invocando Capybara/capybara-webkit y el proceso webkit_server y reiniciar.
Cuando Strace el proceso webkit_server, veo una salida como ésta en varias ocasiones:
clock_gettime(CLOCK_MONOTONIC, {5821, 680279627}) = 0
gettimeofday({1330890176, 712033}, {0, 33052112}) = 0
gettimeofday({1330890176, 712087}, {0, 140736435864256}) = 0
gettimeofday({1330890176, 712137}, {0, 33108640}) = 0
clock_gettime(CLOCK_MONOTONIC, {5821, 680486036}) = 0
clock_gettime(CLOCK_MONOTONIC, {5821, 680530091}) = 0
read(7, 0x1fac1b4, 4096) = -1 EAGAIN (Resource temporarily unavailable)
Y si Strace el proceso Ruby que lo invoca, que es colgado en un read():
Process 3331 attached - interrupt to quit
read(5,
^C <unfinished ...>
Process 3331 detached
Sé que el código Ruby se cuelga en el método Capybara visit().
¿Alguna idea sobre lo que puedo hacer para solucionar o corregir esto se agradece. Supongo que el problema tiene algo que ver con algún recurso que webkit_server necesita para visitar la URL, pero no estoy seguro de qué probar a continuación.
Gracias!
Además, por si sirve de algo, he intentado utilizar el controlador de Carpincho webkit_debug y subió propio registro de carpincho. Las últimas líneas de salida de depuración son: >> Visita >> >> 1 >> http: // [la URL del sitio] He intentado hacer uso de xwd a la captura de pantalla de lo que está sucediendo en este momento : xwd -root -display: 1 | xwdtopnm | pnmtopng> screenshot.png Pero solo me dan un rectángulo negro. –