Sono in esecuzione un'applicazione Django con gunicorn su Heroku. Che cosa significa questo errore nel mio Heroku file di log medio?

StackOverflow https://stackoverflow.com/questions/8810506

  •  26-10-2019
  •  | 
  •  

Domanda

Sto cercando di usare gunicorn con il mio Django app su Heroku. Ho seguito le istruzioni qui: http://devcenter.heroku.com/articles/django#using_a_different_wsgi_server. Sembra che gunicorn runing, perché i registri indicano esso. Tuttavia, non mi piace vedere i messaggi di errore che non capisco nel mio file di log, e mentre la revisione dei registri ho visto la riga che legge "Errore R12 (Exit timeout) -> Processo non è riuscito a uscire entro 10 secondi di SIGTERM "e poi 'processo di fermarsi con SIGKILL'. La mia app sembra essere in esecuzione bene alla URL previsto, quindi questo non è un'emergenza, ma io sono solo curioso di sapere cosa sta succedendo. Grazie.

2012-01-10T20:56:36+00:00 heroku[web.1]: State changed from up to bouncing
2012-01-10T20:56:36+00:00 heroku[web.1]: State changed from bouncing to created
2012-01-10T20:56:36+00:00 heroku[web.1]: State changed from created to starting
2012-01-10T20:56:39+00:00 heroku[web.1]: Stopping process with SIGTERM
2012-01-10T20:56:39+00:00 heroku[web.1]: Starting process with command `python blossom/manage.py run_gunicorn -b "0.0.0.0:27470" -w 3`
2012-01-10T20:56:40+00:00 app[web.1]: Validating models...
2012-01-10T20:56:40+00:00 app[web.1]: Django version 1.3.1, using settings 'blossom.settings'
2012-01-10T20:56:40+00:00 app[web.1]: 
2012-01-10T20:56:40+00:00 app[web.1]: Server is running
2012-01-10T20:56:40+00:00 app[web.1]: 0 errors found
2012-01-10T20:56:40+00:00 app[web.1]: Quit the server with CONTROL-C.
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [3] [INFO] Starting gunicorn 0.13.4
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [3] [INFO] Listening at: http://0.0.0.0:27470 (3)
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [3] [INFO] Using worker: sync
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [6] [INFO] Booting worker with pid: 6
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [7] [INFO] Booting worker with pid: 7
2012-01-10T20:56:40+00:00 app[web.1]: 2012-01-10 15:56:40 [8] [INFO] Booting worker with pid: 8  
2012-01-10T20:56:41+00:00 heroku[web.1]: State changed from starting to up
2012-01-10T20:56:48+00:00 heroku[web.1]: Error R12 (Exit timeout) -> Process failed to exit within 10 seconds of SIGTERM
2012-01-10T20:56:48+00:00 heroku[web.1]: Stopping process with SIGKILL
2012-01-10T20:56:50+00:00 heroku[web.1]: Process exited
È stato utile?

Soluzione

In pratica quello che dice sulla latta. Nel Heroku impilare un processo è sempre terminato con un SIGTERM, che racconta il processo di chiudere con grazia, e lo dà secondi dieci di farlo.

Se questo non è terminato entro 10 secondi poi si ottiene un errore di R12 e un SIGKILL, che è essenzialmente un kill.

Ora, perché questo sta accadendo qui non è del tutto chiaro come i registri non vanno abbastanza indietro, ma si può vedere il SIGTERM accadendo a 20:56:39

Altri suggerimenti

Non c'è abbastanza log per mostrare il vostro problema con la certezza (errore R12 può significare un certo numero di cose). E per la cronaca, non sto correndo Gunicorn. Detto questo, ho avuto un problema simile a questo.

scopre che di cedro-stack non lo fa come si citano le app nella sezione INSTALLED_APPS di settings.py se non c'è un modulo per tale applicazione in qualsiasi altra parte del progetto.

Io di solito codificare la mia app in INSTALLED_APPS prima ancora di iniziare a codice in views.py, e il server DJANGO locale non si lamenta, così mi sono abituato a farlo. Purtroppo, si rompe che di cedro-stack.

Quando ho commentato le app che non ha avuto un modulo in qualsiasi altra parte del progetto e spinto la nuova versione up, ha cominciato a lavorare di nuovo immediatamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top