Erreur de déploiement Heroku H10 (l'application s'est écrasée)
J'ai une application RoR qui fonctionne sur mon ordinateur local, mais quand je l'envoie à heroku, elle se bloque. Le journal des erreurs donne une erreur H10 & dit:
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=
Modifier:
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
Quelqu'un a-t-il déjà eu cela et sait ce qui pourrait causer le problème? Je ne peux pas trouver une solution.
Merci.
24 réponses
J'ai rencontré la même erreur ci-dessus, l'application plantait sur heroku (fonctionnant bien dans dev) mais les journaux d'erreurs sur heroku ne révélaient aucun indice. J'ai lu d'autres réponses sur cette page et j'ai éclaté en sueur après avoir vu " reconstruire l'application."Je me suis dit que je pourrais peut-être entrer dans la console heroku et regarder autour de moi. Je l'ai fait et même la console s'est écrasé, mais cette fois, il m'a dit pourquoi. C'était une variable obscure que j'ai oublié de supprimer lors d'une session de dépannage quelques heures plus tôt. Je ne dis pas que vous exécuter dans le même problème, mais j'ai trouvé plus d'info quand j'ai essayé de passer par la console. Espérons que cette aide.
$heroku run rails console
J'avais le même problème. Les journaux ne me donnaient aucun indice non plus. J'ai donc réduit et réduit les dynos. Cela a résolu le problème pour moi:
heroku ps:scale web=0
J'ai attendu quelques secondes...
heroku ps:scale web=1
$heroku run rails console
C'est la meilleure option car elle vous donnera une erreur dans votre terminal qui sera beaucoup plus détaillée que l'erreur 'app crashed' dans vos journaux Heroku.
$ heroku restart
M'a aidé à faire fonctionner mon dyno à nouveau. Je suis nouveau à Heroku mais content de savoir maintenant.
Cela m'est arrivé quand j'écoutais sur le mauvais port
J'ai changé mon listen () "de processus.env.PORT" donc:
http.listen((process.env.PORT || 5000), function(){
console.log('listening on *:5000');
});
Au Lieu de
http.listen(5000, function(){
console.log('listening on *:5000');
});
A eu le MÊME PROBLÈME Ce soir. Pas une erreur très utile donc j'ai essayé de courir dans la console
heroku run rails c
Il a échoué et m'a donné une erreur beaucoup plus utile. J'avais négligé de supprimer un appel de méthode en production. Une fois que j'ai corrigé cela, l'application a bien fonctionné.
J'ai résolu ce problème en poussant vers Git:
git add .
git commit -am "some text"
git push
Puis poussez vers Heroku:
git push heroku
Puis rake db: migrer sur Heroku:
heroku run rake db:migrate
J'ai réussi à ne pas inclure mon .fichier gitignore - > qui brise heroku. # doh
Voici un travail .fichier gitignore
/.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
Pour créer un .fichier gitignore, dans terminal accédez au répertoire de vos applications et utilisez la commande suivante
touch .gitignore
Ensuite, vous pouvez l'ouvrir dans un éditeur de texte et y mettre le code ci-dessus.
Je recevais cette même erreur de l'application H10 dans Heroku. J'ai cliqué sur 'redémarrer tous les dynos' dans l'interface heroku, et le problème a été résolu.
Dans mon cas, j'utilisais des variables ENV dans mon application, mais elle n'était pas définie dans heroku config.
La console Heroku a donné une erreur appropriée:
heroku console
`validate_options': Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)
Ensuite, définissez la configuration ENV
heroku config:set AWS_ACCESS_KEY_ID='key'
Redémarrez le Heroku
heroku restart
Ça marche!!
Voir si vous obtenez
bash: bin/rails: No such file or directory
Dans les journaux pendant l'exécution de la commande (Heroku logs-t) si oui, exécutez
bundle exec rake rails:update
Ne pas écraser vos fichiers, à la fin cette commande va créer
create bin
create bin/bundle
create bin/rails
create bin/rake
Poussez ces fichiers à heroku et vous avez terminé.
La racine du problème auquel je faisais face était due à ne pas avoir de base de données. Pour résoudre le problème, j'ai d'abord exporté ma base de données 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
Puis importé dans Heroku:
$ heroku pgbackups:restore DATABASE 'http://site.tld/mydb.dump'
Les variables à remplacer dans ces exemples sont: mypassword
, myuser
, mydb
& http://site.tld/mydb.dump
. Notez que j'ai dû télécharger le vidage sur un serveur temporaire.
Résoudre tous mes problèmes j'ai écrit un guide rapide sur la façon de déployer ENKI à Heroku, qui peut être trouvé ici.
J'ai eu la même erreur ci-dessus que "app s'est écrasé" et les journaux de l'application heroku ne montrent pas beaucoup d'informations liées aux raisons de l'Erreur msg. Ensuite, j'ai redémarré les dynos dans heroku, puis il a montré l'erreur en disant Accolade supplémentaire dans l'un des index.fichiers js dans ma configuration. Le problème a été corrigé une fois qu'il est supprimé et redéployé l'application sur heroku.
J'espère que cela sera utile à quelqu'un confronté au même problème.
Après avoir parcouru toute la liste des réponses, je suis tombé sur ce site: https://status.heroku.com / {[2] } qui détaille l'état actuel/les incidents avec Heroku. Il est toujours sûr de vérifier les incidents avant de frapper la tête contre le mur. Pour moi, c'est le rapport d'incident ci-joint publié sur le lien mentionné ci-dessus qui a causé l'erreur.
J'ai eu le même problème, j'ai fait ce qui suit
heroku run rails c
Il a identifié une erreur de syntaxe et une virgule manquante dans un contrôleur autorisé params. Comme mentionné ci-dessus, les journaux Heroku ne fournissaient pas suffisamment d'informations pour résoudre le problème.
Je n'ai pas vu le message de l'application écrasé sur Heroku précédemment.
, j'ai rencontré le même problème aujourd'hui. J'ai fait heroku run rake db:migrate
Bien que j'ai migré le modèle avant, et l'application ne plante pas.
Soyez très prudent de copier et coller du code. Parfois, lorsque vous ajoutez un bloc dans un fichier, il est mal formaté et génère une erreur.
J'ai déjà eu ce problème et j'ai eu cette erreur: tidentifier inattendu, attendant keyword_end
Avait le même problème. pour moi, c'était une erreur dans les filtres before_action (parce que dB vide) Vérifiez vos filtres before_action, peut-être qu'ils jettent des exeptions non bloquées.
J'ai eu ce problème en essayant D'exécuter Rails dans un sous-répertoire, et non dans /
. Par exemple, J'avais L'application Angular/Node/Gulp en cours d'exécution dans /client
et une application Rails en cours d'exécution dans /server
, mais les deux étaient dans le même repo git, donc je pouvais suivre les changements à travers le frontal et le back end. J'ai eu cette erreur en essayant de les déployer à Heroku. Pour toute autre personne ayant ce problème, Voici un buildpack personnalisé qui permettra D'exécuter des Rails dans un répertoire.
J'ai eu le même problème (même erreur sur heroku, travaillant sur une machine locale) et j'ai essayé toutes les solutions listées ici, y compris
heroku run rails console
qui a couru sans messages d'erreur. J'ai essayé heroku run rake db:migrate
et heroku run rake db:migrate:reset
Quelques fois. Rien de tout cela a résolu le problème. En parcourant certains fichiers utilisés en production mais pas dans l'environnement de développement, j'ai trouvé des espaces dans le puma.fichier rb pour être le coupable. Espérons que cela aide quelqu'un qui a le même problème.
Changer cela a fonctionné
ActiveRecord::Base.establish_connection
End
À
ActiveRecord::Base.establish_connection
end
J'ai rencontré le même problème lors du déploiement sur Heroku (crash de l'application). Les journaux n'indiquaient pas quel pourrait être le problème. Heroku console affiché erreur de syntaxe dans le code d'un support supplémentaire. Étonnamment, je n'ai pas un problème local rails lors de l'exécution de l'application et donc raté. Après correction et git push à Heroku, l'application a commencé à travailler sur Heroku!
J'ai mis à jour mes paramètres à partir de App.set('ip_address", processus.env.IP|| '127.0.0.1');
À
App.set('ip_address", processus.env.IP|| '0.0.0.0');
Que j'ai changé pour l'hébergement Openshift
J'ai eu H10
avec Heroku et Node en raison du mauvais nom du fichier de code principal. Modifier package.json
:
{
...
"main": "correct_file_name.js",
...
"scripts": {
"start": "node correct_file_name.js"
}
}
Ou renommez le fichier.
Dans mon cas, le Procfile
que j'ai utilisé cassait tout. Heroku Recherche Procfile
et applique ses paramètres lors du lancement de l'application - il est clair que les paramètres de développement que j'ai utilisés n'avaient aucun sens pour le serveur prod. J'ai dû le renommer en Procfile.dev
et tout a commencé à fonctionner normalement.