Error de implementación de Heroku H10 (aplicación bloqueada)


135

Tengo una aplicación RoR trabajando en mi computadora local, pero cuando la envío a heroku, se bloquea. El registro de errores da un error H10 y 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=

Editar:

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

¿Alguien ha tenido esto antes y sabe qué podría estar causando el problema? No puedo encontrar una solución.

Gracias.


Tiene el mismo error unos meses antes. Acabo de comenzar la nueva aplicación HEROKU, y ayuda. Parece que has roto el banco de pruebas en el banco de bancos.
Rustem

Lamentablemente, esto no resolvió mi problema.
bskool

¿Hay algo que deba hacer para configurar New Relic en Heroku, o tal vez en su aplicación? (NewRelic es un software de monitoreo de aplicaciones y servidores, por lo que es posible que lo que esté viendo sea que NewRelic intervenga para decir "La aplicación se ha bloqueado"). Además, aquí hay otra publicación SO : consulte las instrucciones en una respuesta.
Tom Harrison el

Gracias por la respuesta tharrison. Parece que todavía no puedo superar este problema. Con respecto al enlace que publicó, me gustaría señalar que la gema de Heroku está depreciada y ya ha migrado de SQLite3 a PostgreSQL.
bskool

Pruebe esto: heroku config: add BUILDPACK_URL = github.com/joelcogen/heroku-buildpack-rails-unicorn-nginx
ChuckJHardy

Respuestas:


293

Me encontré con el mismo error anterior, la aplicación fallaba en heroku (funcionaba bien en desarrollo) pero los registros de error en heroku no revelaban ninguna pista. Leí otras respuestas en esta página y empecé a sudar después de ver "reconstruir la aplicación". Pensé que tal vez podría entrar en la consola heroku y mirar alrededor. Lo hice e incluso la consola se bloqueó, pero esta vez me dijo por qué. Era una variable oscura que olvidé eliminar durante una sesión de solución de problemas horas antes. No digo que te encuentres con el mismo problema, pero encontré más información cuando intenté pasar por la consola. Espero que esto ayude.

$ heroku run rails console

24
Esta fue una gran respuesta, me ayudó cuando los registros de heroku carecían de detalles. Gracias.
Micah

8
Solo quería decir, tuve este problema nuevamente, busqué en Google, encontré esta respuesta, vi que lo había votado y resolvió mi problema nuevamente. Gracias @ user3721026. Si ve este comentario, vuelva a votar la respuesta porque no puedo: P
mraaroncruz

1
Tuve el mismo sudor cuando encontré esta respuesta, ¡perfecto!
Craig McGuff

3
Tuve este mismo problema en Python pero tropecé aquí. El equivalente allí es "$ heroku run python manage.py shell" que inmediatamente me mostró lo que estaba mal.
dlb8685

12
heroku restartMe ayudó a identificar mi problema. Mi bincarpeta faltaba.
Steve

44

Yo estaba teniendo el mismo problema. Los registros tampoco me dieron ninguna pista. Así que bajé la escala y volví a subir el banco de pruebas. Esto resolvió mi problema:

heroku ps:scale web=0

Esperé unos segundos ...

heroku ps:scale web=1

3
AKA "reiniciar" :) ¡Gracias!
AD

21
heroku restartfue la solución que funcionó para mí, y supongo (detrás de escena) que este es un truco similar. El reinicio se implementará deteniendo todos los dinamómetros y volviéndolos a iniciar.
Jochem Schulenklopper

1
Esto me sucedió después de actualizar a la última pila (heroku-18). Ejecutar esto, funcionó a la perfección!
robe007

21
$heroku run rails console 

Esta es la mejor opción, ya que le dará un error en su terminal que será mucho más detallado que el error de 'aplicación bloqueada' en sus registros de Heroku.


1
Esto no parece ser una respuesta. Solo una sugerencia de cómo mejorar la pregunta. Debe usar la sección de comentarios para este propósito.
Kamiccolo

3
Esta es una respuesta, la correcta en realidad. Pero lo mismo que arriba stackoverflow.com/a/24113266/376680
mraaroncruz

1
Es la mejor respuesta porque explica lo que hace el comando v / s ntimba20 respuesta que carece de una explicación de lo que hace.
bartoindahouse

18
$ heroku restart

me ayudó a que mi dinamómetro volviera a funcionar. Soy nuevo en Heroku pero me alegra saberlo ahora.


14

esto me sucedió cuando estaba escuchando en el puerto equivocado

Cambié mi listen () a "process.env.PORT" así que:

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

en vez de

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

11

Tuve el mismo problema esta noche. No es un error muy útil, así que intenté ejecutar en la consola

heroku run rails c

falló y me dio un error mucho más útil. Había descuidado eliminar una llamada al método en producción. Una vez que solucioné eso, la aplicación funcionó bien.


¡Esto lo hizo por mí! Estaba usando una versión diferente de Ruby localmente y en Heroku, y resultó en un SyntaxError. Los registros no dieron mucha información, pero lo rails chicieron.
Matthew White

Para mí, el problema fue que creé un Modelo / Tabla llamado Correo. Esto funcionó bien en local, pero causó un conflicto de trabajo en Heroku ya que pensó que estaba tratando de usar ActionMailer para este modelo. La ejecución de la consola heroku me dio el error detallado que me permitió identificar la raíz del error de bloqueo de la aplicación H10
Zack Weiner

Gracias, esto resolvió mi problema. Finalmente obtengo el error real de desajuste de superclase y nada relacionado con favicon
Mauro

5

Resolví este problema presionando a Git:

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

luego empuja a Heroku:

git push heroku

luego rastrillar db: migrar en Heroku:

heroku run rake db:migrate

9
No veo cómo eso marcaría la diferencia. Pero me alegro de que funcionó para ti :)
bskool

Cambié el nombre de mi aplicación y tuve este problema, ejecuté heroku run rake db: migra y funciona :)
Richlewis

2
Esto es solo porque tenías algo que migrar a heroku db
Manny Quintanilla

3

Logré no incluir mi archivo .gitignore -> que rompe heroku. #doh

Aquí hay un archivo .gitignore en funcionamiento

/.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

Para crear un archivo .gitignore, en la terminal navegue a su directorio de aplicaciones y use el siguiente comando

touch .gitignore

Luego puede abrirlo en su editor de texto y poner el código anterior en él.


3

En mi caso, estaba usando variables ENV en mi aplicación, pero no estaba configurado en heroku config.

la consola de heroku dio el error apropiado:

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

Luego configure la configuración ENV

heroku config:set AWS_ACCESS_KEY_ID='key'

Reinicia el Heroku

heroku restart

¡¡funciona!!


2

Estaba recibiendo el mismo error de bloqueo de la aplicación H10 en Heroku. Hice clic en 'reiniciar todos los dynos' en la interfaz de heroku y resolví el problema.


1
También tuve exactamente el mismo problema. La consola de Rails no mostró ningún error. No hay errores en los registros de la aplicación. Intenté reiniciar a través de la línea de comando, intenté reducir a 0 y luego volver a subir. Nada funcionó. Lo único que funcionó fue iniciar sesión en Heroku y hacer clic en "reiniciar todos los dynos" en el menú desplegable en la esquina superior derecha. ¡Gracias por tu ayuda!
Will Tew

2

Tuve H10con Heroku y Node debido a un nombre incorrecto del archivo de código principal. Editar package.json:

{

  ...

  "main": "correct_file_name.js",

  ...

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

O cambie el nombre del archivo.


1

A ver si consigues

bash: bin/rails: No such file or directory

en los registros mientras se ejecuta el comando (heroku logs -t) si es así, ejecute

bundle exec rake rails:update

No sobrescriba sus archivos, al final este comando creará

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

empuje estos archivos a heroku y listo.


1

La raíz del problema que enfrentaba se debía a que no tenía una base de datos. Para resolver el problema, primero exporté mi base de datos local:

$ 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 

Luego lo importó a Heroku:

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

Las variables para reemplazar en estos ejemplos son: mypassword, myuser, mydby http://site.tld/mydb.dump. Tenga en cuenta que tuve que cargar el volcado a un servidor temporal.

Resolviendo todos mis problemas, escribí una guía rápida sobre cómo implementar Enki en Heroku, que se puede encontrar aquí .


1

Obtuve el mismo error anterior que "aplicación bloqueada" y los registros de la aplicación heroku no muestran mucha información relacionada con los motivos del mensaje de error. Luego reinicié el dynos en heroku y luego mostró el error diciendo una llave adicional en uno de los archivos index.js en mi configuración. El problema se solucionó una vez que se eliminó y se volvió a implementar la aplicación en heroku.

Espero que esto sea útil para alguien que enfrenta el mismo problema.


1

Después de revisar la lista completa de respuestas, me topé con este sitio web: https://status.heroku.com/ que detalla el estado actual / incidentes con Heroku. Siempre es seguro verificar si hay incidentes antes de golpearse la cabeza contra la pared. Para mí, fue el informe de incidente adjunto publicado en el enlace mencionado anteriormente lo que estaba causando el error.

ACTUALIZACIÓN DE INCIDENTES DE SERVIDOR


1

En mi caso, lo Procfileque usé fue romper todo. Heroku busca Procfiley aplica su configuración al iniciar la aplicación, claramente la configuración de desarrollo que utilicé no tenía ningún sentido para el servidor de productos. Tuve que cambiarle el nombre Procfile.devy todo comenzó a funcionar normalmente.


1

Tuve el mismo problema, hice lo siguiente

heroku run rails c

Identificó un error de sintaxis y una coma faltante dentro de los parámetros permitidos de un controlador. Como se mencionó anteriormente, los registros de Heroku no proporcionaron información suficiente para resolver el problema.

No he visto el mensaje de la aplicación bloqueada en Heroku anteriormente.


En mi caso, hubo un uninitialized constanterror en Heroku que no estaba presente localmente. Si bien aún necesito resolver eso, pude recuperar una implementación funcional.
Steve Meisner

1

Si está utilizando Node, puede intentar ejecutar el comando de servir directamente en la consola. En mi caso, estoy ejecutando una aplicación angular, así que probé con:

heroku run npm start

Esto me mostró el error exacto durante el inicio de la aplicación.


1

Rastreé mi problema hasta el servidor Puma como lo hizo @Ahmed Elkoussy, pero lo resolví simplemente comentando la siguiente línea en el archivo puma.rb:

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


0

Encontré el mismo problema hoy. Lo hice heroku run rake db:migrateaunque migré el modelo antes, y la aplicación no se bloquea.


0

Tenga mucho cuidado al copiar y pegar código. A veces, cuando agrega un bloque a un archivo, tiene un formato incorrecto y generará un error.

He tenido este problema antes y recibí este error: tIDENTIFIER inesperado, esperando palabra clave_end


copiar y pegar código sin entenderlo se llama programación de culto de carga y le causará muchos más problemas que un poco de "formateo"
David Meister

0

Tuve el mismo problema para mí fue un error en los filtros before_action (porque la base de datos vacía) Verifique sus filtros before_action, tal vez arrojen excepciones no controladas.


0

Tuve este problema al intentar ejecutar Rails en un subdirectorio, y no en /. Por ejemplo, tenía la aplicación Angular / Node / Gulp ejecutándose /clienty una aplicación Rails ejecutándose en/server , pero ambas estaban en el mismo repositorio git, por lo que podía rastrear los cambios en el front-end y el back-end. Recibí este error al intentar implementarlos en Heroku. Para cualquier otra persona que tenga este problema, aquí hay un paquete de compilación personalizado que permitirá ejecutar Rails en un subdirectorio.

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


0

Tuve el mismo problema (el mismo error en heroku, trabajando en una máquina local) y probé todas las soluciones enumeradas aquí, incluida la heroku run rails console que se ejecutó sin mensajes de error. Lo intenté heroku run rake db:migratey heroku run rake db:migrate:resetalgunas veces. Nada de esto resolvió el problema. Al revisar algunos archivos que se usan en la producción pero no en el entorno de desarrollo, encontré que algunos espacios en blanco en el archivo puma.rb son los culpables. Espero que esto ayude a alguien que tiene el mismo problema. Cambiar esto lo hizo funcionar

  ActiveRecord::Base.establish_connection
  End

a

  ActiveRecord::Base.establish_connection
end

0

Me encontré con el mismo problema al implementarlo en Heroku (bloqueo de la aplicación). Los registros no indicaron cuál podría ser el problema. La consola de Heroku mostró un error de sintaxis en el código de un paréntesis adicional. Sorprendentemente, no tuve un problema con los rieles locales mientras ejecutaba la aplicación y, por lo tanto, lo perdí. Después de la corrección y el empuje hacia Heroku, ¡la aplicación comenzó a funcionar en Heroku!


0

Actualicé mi configuración desde app.set ('ip_address', process.env.IP || '127.0.0.1' );

a

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

que cambié para el alojamiento Openshift


0

Tuve el mismo problema cuando comencé a usar Puma en heroku según su página de guía , este problema se resolvió cuando comenté la línea de puerto que se muestra a continuación

# port        ENV['PORT']     || 3000

Entonces, deshabilitar la línea anterior en el puma.rb en el directorio de configuración resolvió el 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

En mi caso, estaba actuando git push heroku mastercuando no estoy en la rama maestra. Primero tuve que ir a la rama maestra, fusionar el código con mi otra rama y luego git push.


0

También encontré el mismo error. Agregar un.gitignore archivo a mi proyecto resolvió mi problema.

Mi .gitignorearchivo esta aquí:

# Node build artifacts
node_modules
npm-debug.log

# Local development
*.env
*.dev
.DS_Store

# Docker
Dockerfile
docker-compose.yml

Y cambié de listen()función;

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

Lo cambié a;

    const PORT = process.env.PORT || 5000

...

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

0

La solución que publiqué en Dev y funcionó para la mayoría de las personas que usan 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"
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.