2014-10-27 18 views
6

Ho ricevuto questo errore ora su & per gli ultimi due giorni da quando ho distribuito la mia applicazione a heroku. Succede sia prima che io abbia iniziato ad usare l'unicorno come server e anche dopo. A volte posso riattivarlo utilizzando heroku run rake db:migrate e poi heroku restart ma questo lo risolve solo per un paio d'ore ed è rotto di nuovo. Per quanto riguarda la pagina web sta dicendo "Errore dell'applicazione". I registri non sono molto utili, ma qui è quello che dice ogni volta che questo errore si verifica:Errore Heroku H13

[2014-10-27T21:13:31.675956 #2] ERROR -- : worker=1 PID:8 timeout (16s > 15s), killing 
[2014-10-27T21:13:31.731646 #14] INFO -- : worker=1 ready 
[2014-10-27T21:13:31.694690 #2] ERROR -- : reaped #<Process::Status: pid 8 SIGKILL (signal 9)> worker=1 
at=error code=H13 desc="Connection closed without response" method=GET 

sto solo usando la versione gratuita di Heroku, voglio assicurarsi che funzioni prima di aggiornare, ma è che il mio unico opzione a questo punto?

Inoltre, sono in grado di eseguirlo localmente perfettamente utilizzando rails server o foreman start.

risposta

5

Heroku documenti dicono this about H13:

H13 - Connessione chiusa senza risposta

Questo errore viene generato quando un processo nel vostro web banco accetta una connessione, ma poi chiude il socket senza scrivere nulla ad esso .

Un esempio in cui ciò potrebbe accadere è quando un server Web Unicorn è configurato con un timeout inferiore a 30 s e una richiesta non è stata elaborata da un lavoratore prima che si verifichi il timeout. In questo caso, Unicorn chiude la connessione prima che venga scritto qualsiasi dato, risultando in un H13.

Un paio allinea, si dispone di un errore relativo a un processo di sincronizzazione fuori dopo 15s:

ERROR -- : worker=1 PID:8 timeout (16s > 15s), killing 

Heroku aiuto ha una sezione sulla timeout settings:

A seconda della lingua che si può essere in grado di impostare un timeout a livello di server delle app. Un esempio è l'unicorno di Ruby. In Unicorn è possibile impostare un timeout in config/unicorn.rb come questo:

timeout 15

Il timer inizierà una volta Unicorn inizia l'elaborazione della richiesta, se passano 15 secondi, allora il processo pilota invierà un SIGKILL al lavoratore, ma non verrà sollevata un'eccezione.

Che corrisponde ai messaggi di errore nel registro. Ci darei un'occhiata.

+0

Ho una riga in config/unicorn.rb che dice 'timeout 15' e ad un certo punto l'ho cambiato in' timeout 30' senza alcun risultato – Eli

+0

Ho appena accettato questa come risposta perché sembra funzionare ora in modo coerente, quindi non sono sicuro di cosa stia causando questo problema. – Eli

+4

Eli, Qualche cambiamento in questa situazione? Occasionalmente ricevo questo errore, ma sembra che vada via appena ho iniziato a risolvere il problema. Sembra che sia più probabile che accada dopo che l'app rimane inattiva per un giorno circa, quasi come se fosse parzialmente addormentata. – SteveO7

Problemi correlati