Errore di distribuzione di Heroku H10 (App bloccata)


135

Ho un'app RoR che funziona sul mio computer locale, ma quando la invio a heroku, si blocca. Il registro degli errori riporta un errore H10 e dice:

    2012-11-21T15:26:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:95:in `start_agent'
    2012-11-21T15:26:48+00:00 heroku[web.1]: State changed from starting to crashed
    2012-11-21T15:26:48+00:00 heroku[web.1]: Process exited with status 1
    2012-11-21T15:26:59+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:27:00+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:30:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:30:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:30:59+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:31:19+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:31:19+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:32:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:32:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=

Modificare:

2012-11-22T10:00:58+00:00 app[web.1]: 
2012-11-22T10:00:59+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno=web.1 queue=0 wait=0ms connect=1ms service=26ms status=200 bytes=0

Qualcuno l'ha mai avuto prima e sai cosa potrebbe causare il problema? Non riesco a trovare una soluzione.

Grazie.


Hanno lo stesso errore qualche mese prima. Ho appena avviato la nuova app HEROKU e aiuta. Sembra che tu abbia rotto Dyno in Dyno Pool.
Rustem,

Purtroppo questo non ha risolto il mio problema.
bskool,

C'è qualcosa che devi fare per configurare New Relic su Heroku o forse nella tua app? (NewRelic è un software di monitoraggio di server e app, quindi è possibile che ciò che stai vedendo sia l'avvio di NewRelic per dire "L'app si è arrestata in modo anomalo"). Inoltre, ecco un altro post SO : consulta le istruzioni in una risposta.
Tom Harrison,

Grazie per la risposta tharrison. Non riesco ancora a superare questo problema. Per quanto riguarda il link che hai pubblicato, vorrei sottolineare che la gemma di Heroku è deprezzata e ha già migrato da SQLite3 a PostgreSQL.
bskool,

Prova questo: heroku config: aggiungi BUILDPACK_URL = github.com/joelcogen/heroku-buildpack-rails-unicorn-nginx
ChuckJHardy

Risposte:


293

Mi sono imbattuto nello stesso errore sopra, l'app si stava bloccando su heroku (funzionava bene in dev) ma i log degli errori su heroku non rivelavano alcun indizio. Ho letto altre risposte su questa pagina e sono scoppiato in sudore dopo aver visto "ricostruire l'app". Ho pensato che forse avrei potuto entrare nella console di Heroku e guardarmi intorno. L'ho fatto e anche la console si è arrestata in modo anomalo, ma questa volta mi ha spiegato perché. Era una variabile oscura che avevo dimenticato di eliminare durante una sessione di risoluzione dei problemi ore prima. Non sto dicendo che incontrerai lo stesso problema, ma ho trovato maggiori informazioni quando ho provato a passare attraverso la console. Spero che questo ti aiuti.

$ heroku run rails console

24
Questa è stata un'ottima risposta, mi ha aiutato quando i log di heroku mancavano di dettagli. Grazie.
Michea il

8
Volevo solo dire che ho avuto di nuovo questo problema, ho cercato su Google, ho trovato questa risposta, ho visto che l'avevo votato e risolto di nuovo il mio problema. Grazie @ user3721026. Se vedi questo commento, per favore vota di nuovo la risposta perché non posso: P
mraaroncruz

1
ho avuto lo stesso sudore quando ho trovato questa risposta, perfetta!
Craig McGuff,

3
Ho avuto lo stesso problema in Python ma invece mi sono imbattuto qui. L'equivalente c'è "$ heroku run python manage.py shell" che mi ha subito mostrato cosa non andava.
dlb8685,

12
heroku restartmi ha aiutato a identificare il mio problema. La mia bincartella mancava.
Steve

44

Stavo avendo lo stesso problema. I registri non mi davano alcun indizio. Quindi ho ridimensionato e ridimensionato il dynos. Questo ha risolto il problema per me:

heroku ps:scale web=0

Aspettato qualche secondo ...

heroku ps:scale web=1

3
AKA "riavvia" :) Grazie!
AD

21
heroku restartè stata la soluzione che ha funzionato per me, e immagino (dietro le quinte) questo sia un trucco simile. Il riavvio verrà implementato arrestando tutti i dynos e avviandoli di nuovo.
Jochem Schulenklopper,

1
Questo mi è successo dopo l'aggiornamento all'ultimo stack (heroku-18). In esecuzione, ha funzionato perfettamente!
robe007,

21
$heroku run rails console 

Questa è l'opzione migliore poiché ti darà un errore nel tuo terminale che sarà molto più dettagliato dell'errore "app crash" nei tuoi registri Heroku.


1
Questa non sembra essere una risposta. Solo un suggerimento su come migliorare la domanda. È necessario utilizzare la sezione commenti per questo scopo.
Kamiccolo,

3
Questa è una risposta, quella corretta in realtà. Ma lo stesso come sopra stackoverflow.com/a/24113266/376680
mraaroncruz

1
È la risposta migliore perché spiega cosa fa il comando v / s ntimba20 answer che manca di una spiegazione di ciò che fa.
Bartoindahouse,

18
$ heroku restart

mi ha aiutato a riavviare il mio dyno. Sono nuovo di Heroku ma felice di saperlo ora.


14

questo è successo a me quando stavo ascoltando sulla porta sbagliata

Ho cambiato il mio hear () in "process.env.PORT" così:

http.listen((process.env.PORT || 5000), function(){
  console.log('listening on *:5000');
});

invece di

http.listen(5000, function(){
  console.log('listening on *:5000');
});

11

Stasera ho avuto lo stesso problema. Non è stato un errore molto utile, quindi ho provato a correre nella console

heroku run rails c

fallì e mi diede un errore molto più utile. Avevo trascurato di eliminare una chiamata di metodo in produzione. Una volta risolto il problema, l'app funzionava bene.


Questo l'ha fatto per me! Stavo usando una versione diversa di Ruby localmente e su Heroku, e stava ottenendo un SyntaxError. I registri non davano molte informazioni, ma lo rails cfacevano.
Matthew White,

Per me il problema era che ho creato un modello / tabella chiamato Mail. Questo ha funzionato bene su locale, ma ha causato un conflitto di lavoro su Heroku poiché pensava che stessi cercando di usare ActionMailer per questo modello. L'esecuzione della console heroku mi ha dato l'errore verboso che mi ha permesso di individuare la radice dell'errore Hash App H10
Zack Weiner,

Grazie questo risolto il mio problema. Finalmente ho riscontrato la vera mancata corrispondenza della superclasse di errore e nulla di simile a favicon
Mauro,

5

Ho risolto questo problema spingendo a Git:

git add .
git commit -am "some text"
git push

quindi spingere verso Heroku:

git push heroku

quindi rake db: migrate su Heroku:

heroku run rake db:migrate

9
Non vedo come ciò farebbe la differenza. Ma sono contento che abbia funzionato per te :)
bskool,

ho rinominato la mia app e ho avuto questo problema, ho eseguito heroku run rake db: migrate e funziona :)
Richlewis

2
Questo solo perché avevi qualcosa da migrare su heroku db
Manny Quintanilla,

3

Sono riuscito a non includere il mio file .gitignore -> che interrompe heroku. #doh

Ecco un file .gitignore funzionante

/.bundle
/vendor/bundle/
/vendor/ruby/


db/*.sqlite3
/db/*.sqlite3-journal
/log/*
/tmp/*


**.war
*.rbc
*.sassc
.redcar/
.sass-cache
/config/config.yml
/config/database.yml
/coverage.data
/coverage/
/db/*.javadb/
/db/*.sqlite3
/doc/api/
/doc/app/
/doc/features.html
/doc/specs.html
/public/cache
/public/stylesheets/compiled
/public/system/*
/spec/tmp/*
/cache
/capybara*
/capybara-*.html
/gems
/specifications
rerun.txt
pickle-email-*.html
.zeus.sock

**.orig

.DS_Store

/nbproject/

.idea

/*.tmproj

**.swp

.env
.powenv

Per creare un file .gitignore, nel terminale passare alla directory delle app e utilizzare il comando seguente

touch .gitignore

Quindi puoi aprirlo in un editor di testo e inserire il codice sopra.


3

Nel mio caso stavo usando le variabili ENV nella mia app, ma non era impostato in heroku config.

la console di heroku ha dato l'errore corretto:

heroku console
`validate_options': Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)

Quindi impostare la configurazione ENV

heroku config:set AWS_ACCESS_KEY_ID='key'

Riavvia Heroku

heroku restart

Funziona!!


2

Stavo ottenendo questo stesso errore H10 app in crash in Heroku. Ho fatto clic su "riavvia tutti i dynos" nell'interfaccia di heroku e il problema è stato risolto.


1
Ho anche avuto lo stesso identico problema. La console di Rails non ha mostrato alcun errore. Nessun errore nei registri dall'app. Ho provato a riavviare tramite la riga di comando, ho provato a ridimensionare a 0 e quindi a eseguire il backup. Niente ha funzionato. L'unica cosa che ha funzionato è stato accedere a Heroku e fare clic su "riavvia tutti i dynos" nel menu a discesa in alto a destra. Grazie per l'aiuto!
Will Tew il

2

Ho avuto H10con Heroku e Node a causa del nome sbagliato del file di codice principale. Modifica package.json:

{

  ...

  "main": "correct_file_name.js",

  ...

  "scripts": {
    "start": "node correct_file_name.js"
  }
}

O rinominare il file.


1

Vedi se ottieni

bash: bin/rails: No such file or directory

nei log durante l'esecuzione del comando (heroku logs -t) se sì, per favore Esegui

bundle exec rake rails:update

Non sovrascrivere i tuoi file, alla fine questo comando creerà

  create  bin
  create  bin/bundle
  create  bin/rails
  create  bin/rake

spingere questi file su heroku e il gioco è fatto.


1

La radice del problema che stavo affrontando era dovuta al fatto di non avere un database. Per risolvere il problema ho prima esportato il mio database locale:

$ heroku addons:add heroku-postgresql:dev 
$ heroku addons:add pgbackups
$ PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump 

Quindi lo ha importato in Heroku:

$ heroku pgbackups:restore DATABASE 'http://site.tld/mydb.dump'

Le variabili per sostituire in questi esempi sono: mypassword, myuser, mydbe http://site.tld/mydb.dump. Si noti che ho dovuto caricare il dump su un server temporaneo.

Risolvendo tutti i miei problemi, ho scritto una breve guida su come distribuire Enki su Heroku, che può essere trovata qui .


1

Ho ricevuto lo stesso errore precedente di "app crash" e i registri dell'app heroku non mostrano molte informazioni relative ai motivi dell'errore msg. Quindi ho riavviato il dynos in heroku e poi ha mostrato l'errore che diceva un ulteriore tutore riccio in uno dei file index.js nella mia installazione. Il problema è stato risolto una volta rimosso e ridistribuito l'app su heroku.

Spero che questo possa essere utile a qualcuno che affronta lo stesso problema.


1

Dopo aver esaminato l'intero elenco di risposte mi sono imbattuto in questo sito Web: https://status.heroku.com/ che descrive in dettaglio lo stato corrente / incidenti con Heroku. È sempre sicuro verificare gli incidenti prima di sbattere la testa contro il muro. Per me, è stato il rapporto sugli incidenti allegato pubblicato sul link sopra menzionato a causare l'errore.

AGGIORNAMENTO INCIDENTE SERVER


1

Nel mio caso l' Procfileho usato stava rompendo tutto. Heroku cerca Procfilee applica le sue impostazioni all'avvio dell'app - chiaramente le impostazioni di sviluppo che ho usato non avevano alcun senso per il prod server. Ho dovuto rinominarlo Procfile.deve tutto ha iniziato a funzionare normalmente.


1

Ho avuto lo stesso problema, ho fatto quanto segue

heroku run rails c

Ha identificato un errore di sintassi e una virgola mancante all'interno dei parametri consentiti da un controller. Come accennato in precedenza, i registri di Heroku non fornivano informazioni sufficienti per risolvere il problema.

Non ho mai visto il messaggio di arresto anomalo dell'applicazione su Heroku in precedenza.


Nel mio caso, c'era un uninitialized constanterrore su Heroku che non era presente localmente. Mentre ho ancora bisogno di risolverlo, sono stato in grado di ripristinare una distribuzione funzionante.
Steve Meisner,

1

Se stai usando Node, puoi provare a eseguire il comando serve direttamente nella console. Nel mio caso sto eseguendo un'applicazione angolare, quindi ho provato con:

heroku run npm start

Questo mi ha mostrato l'errore esatto durante l'avvio dell'applicazione.


1

Ho rintracciato il mio problema sul server Puma come ha fatto @Ahmed Elkoussy, ma ho risolto solo commentando la seguente riga sul file puma.rb:

# pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }


0

Ho riscontrato lo stesso problema oggi. L'ho fatto heroku run rake db:migrateanche se ho migrato il modello prima e l'app non si arresta in modo anomalo.


0

Fai molta attenzione a copiare e incollare il codice. A volte quando si aggiunge un blocco in un file, questo viene formattato in modo errato e genererà un errore.

Ho già avuto questo problema e ho riscontrato questo errore: tIDENTIFIER imprevisto, in attesa di keyword_end


copiare e incollare il codice senza capirlo si chiama programmazione cult di cargo e ti causerà molti più problemi di un po 'di "formattazione"
David Meister,

0

Ha avuto lo stesso problema. per me è stato un errore nei filtri before_action (perché DB vuoto) Controlla i filtri before_action, forse generano eccezioni senza intoppi.


0

Ho avuto questo problema durante il tentativo di eseguire Rails in una sottodirectory e non in /. Ad esempio, avevo un'app Angular / Node / Gulp in esecuzione /cliente un'app Rails in esecuzione /server, ma entrambe erano nello stesso repository git, quindi potevo tracciare le modifiche attraverso il front-end e il back-end. Ho riscontrato questo errore durante il tentativo di distribuirli su Heroku. Per chiunque abbia questo problema, ecco un buildpack personalizzato che consentirà l'esecuzione di Rails in una sottodirectory.

https://github.com/aarongray/heroku-buildpack-ruby


0

Ho avuto lo stesso problema (stesso errore su heroku, lavorando su una macchina locale) e ho provato tutte le soluzioni elencate qui incluso heroku run rails console che funzionavano senza messaggi di errore. Ci ho provato heroku run rake db:migratee heroku run rake db:migrate:resetalcune volte. Niente di tutto ciò ha risolto il problema. Analizzando alcuni file utilizzati nella produzione ma non nell'ambiente di sviluppo, ho scoperto che alcuni degli spazi nel file puma.rb sono i colpevoli. Spero che questo aiuti qualcuno che ha lo stesso problema. La modifica di questo ha funzionato

  ActiveRecord::Base.establish_connection
  End

per

  ActiveRecord::Base.establish_connection
end

0

Ho riscontrato lo stesso problema durante la distribuzione su Heroku (arresto anomalo dell'app). I registri non indicavano quale potesse essere il problema. La console di Heroku ha visualizzato un errore di sintassi nel codice di una parentesi aggiuntiva. Sorprendentemente, non ho avuto problemi con le guide locali durante l'esecuzione dell'app e quindi l'ho persa. Dopo la correzione e git push su Heroku, l'app ha iniziato a lavorare su Heroku!


0

Ho aggiornato le mie impostazioni da app.set ('indirizzo_ip', process.env.IP || '127.0.0.1' );

per

app.set ('indirizzo_ip', process.env.IP || '0.0.0.0' );

che ho modificato per l'hosting Openshift


0

Ho avuto lo stesso problema quando ho iniziato a usare Puma in heroku secondo la loro pagina guida , questo problema è stato risolto quando ho commentato la linea di porta mostrata di seguito

# port        ENV['PORT']     || 3000

Pertanto, la disabilitazione della riga precedente in puma.rb nella directory di configurazione ha risolto il problema

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
# port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'production'

on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end

0

Nel mio caso mi esibivo git push heroku masterquando non ero nel ramo principale. Prima dovevo andare al master branch, unire il codice con l'altro mio branch e poi git spinto.


0

Ho riscontrato anche lo stesso errore. L'aggiunta di un .gitignorefile al mio progetto ha risolto il mio problema.

Il mio .gitignorefile è qui:

# Node build artifacts
node_modules
npm-debug.log

# Local development
*.env
*.dev
.DS_Store

# Docker
Dockerfile
docker-compose.yml

E ho cambiato listen()funzione;

app.listen(5000, function() {
console.log("Server running on port 5000...");
});

L'ho cambiato in;

    const PORT = process.env.PORT || 5000

...

    app.listen(PORT, function() {
    console.log("Server running on port 5000...");
    });

0

La soluzione che ho pubblicato su Dev e ha funzionato per la maggior parte delle persone usando React:

https://medium.com/@uros.randelovic/causes-of-heroku-h10-app-crashed-error-and-how-to-solve-them-70495914d2a3?sk=1c51cf95e904f754a43a4b63a06b5503

npm install serve --s
"scripts": {
"dev": "react-scripts start",
"start": "serve -s build",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject",
"heroku-postbuild": "npm run build"
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.