Error Passenger y Ruby «it did not write a startup response in time»
1.107 views
Algunas veces, las aplicaciones ruby que hacen uso de passenger, se pueden encontrar con problemas al iniciar.
Esto impide la carga de la aplicación y nos muestra un error parecido a éste:
An error occurred while starting up the preloader: it did not write a startup response in time
Puede deberse a diferentes motivos, pero podemos probar a seguir los siguientes pasos.
Si la aplicación la tenemos configurada en un servidor apache:
Editamos el fichero de configuración apache para nuestra aplicación. En mi caso:
$ sudo nano /etc/apache2/sites-available/redmine.xxxxx.es.conf
<VirtualHost *:80> DocumentRoot "/var/www/redmine" ServerName redmine.xxxxx.es <Directory "/var/www/redmine"> RailsBaseURI /redmine PassengerResolveSymlinksInDocumentRoot on Options -MultiViews PassengerStartTimeout 5 </Directory> </VirtualHost>
Como veis, la opción PassengerStartTimeout tiene el valor 5.
Ésto implica que passenger dará un error si durante 5 segundos el servidor no responde.
Para darle más tiempo para que espere una contestación del servidor, aumentamos el valor, por ejemplo, a 90. Es decir, cambiamos 5 por 90.
Guardamos los cambios y reiniciamos apache:
$ sudo services apache2 restart
Con estos pasos, conseguimos que nuestra aplicación arranque y funcione perfectamente.
Si continuamos con problemas, quizás deberíamos ir pensando en aumentar la memoria RAM…
Si no es posible aumentar la RAM del servidor, siempre podremos crear un archivo de swap para ver si podemos solucionarlo.
En https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04 tenemos unas instrucciones.