Heroku 배포 오류 H10 (앱 충돌)


135

로컬 컴퓨터에서 RoR 앱을 사용하고 있지만 heroku로 보낼 때 충돌이 발생합니다. 오류 로그에 오류 H10이 표시되고 다음과 같이 표시됩니다.

    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=

편집하다:

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

누구든지 전에 이것을 가지고 있었고, 문제를 일으키는 원인을 알고 있습니까? 해결책을 찾을 수 없습니다.

감사.


몇 달 전에 같은 오류가 발생했습니다. 새로운 HEROKU 앱을 시작했는데 도움이됩니다. 나는 당신이 dyno pool에서 dyno를 깨뜨린 것처럼 보입니다.
Rustem

불행히도 이것은 내 문제를 해결하지 못했습니다.
bskool

Heroku 또는 앱에서 New Relic을 구성하기 위해해야 ​​할 일이 있습니까? (NewRelic은 서버 및 앱 모니터링 소프트웨어이므로 "앱이 다운되었습니다"라고 알리기 위해 NewRelic이 시작될 수 있습니다.) 또한 여기에 또 다른 SO 게시물이 있습니다 -답변의 지침을 참조하십시오.
톰 해리슨

답장 tharrison 주셔서 감사합니다. 여전히이 문제를 지나갈 수는 없습니다. 게시 한 링크와 관련하여 Heroku gem이 감가 상각되었으며 SQLite3에서 PostgreSQL로 이미 마이그레이션되었음을 지적하고 싶습니다.
bskool

보십시오이 : Heroku가 설정 : 추가 BUILDPACK_URL = github.com/joelcogen/heroku-buildpack-rails-unicorn-nginx
ChuckJHardy

답변:


293

위의 동일한 오류가 발생하여 앱이 heroku에서 충돌하고 (dev에서 잘 실행 중) heroku의 오류 로그에 단서가 표시되지 않았습니다. 이 페이지에서 다른 답변을 읽고 "앱 재 구축"을 본 후 땀을 흘 렸습니다. 어쩌면 헤 로쿠 콘솔에 들어가서 둘러 볼 수있을 것 같아요. 나는 콘솔조차도 추락했지만 이번에는 그 이유를 말해주었습니다. 문제 해결 세션 시간 전에 삭제하는 것을 잊어 버린 일부 모호한 변수였습니다. 나는 당신이 같은 문제에 부딪 칠 것이라고 말하지는 않지만 콘솔을 살펴 보았을 때 더 많은 정보를 찾았습니다. 도움이 되었기를 바랍니다.

$ heroku run rails console

24
헤 로쿠 로그에 세부 정보가 부족할 때 도움이되었습니다. 감사.
Micah

8
그냥 말하고 싶었습니다.이 문제가 다시 발생했습니다. googled,이 답변을 찾았습니다.이 문제를 상향 조정하고 내 문제를 다시 해결했습니다. 감사합니다 @ user3721026. 이 의견이 보이면 답변을 다시
올리십시오

1
이 답변을 찾았을 때 똑같은 땀을 흘 렸습니다.
Craig McGuff

3
나는 파이썬 에서이 같은 문제가 있었지만 대신 여기에서 우연히 발견되었습니다. 이에 상응하는 "$ heroku run python manage.py shell"은 무엇이 잘못되었는지 즉시 보여줍니다.
dlb8685

11
heroku restart내 문제를 식별하는 데 도움이되었습니다. 내 bin폴더가 없습니다.
Steve

44

나는 같은 문제를 겪고 있었다. 통나무도 나에게 단서를주지 못했습니다. 그래서 나는 스케일을 줄이고 스케일을 다시 올렸다. 이것은 나를 위해 문제를 해결했습니다.

heroku ps:scale web=0

몇 초 기다렸다 ...

heroku ps:scale web=1

3
일명 "재시작":) 감사합니다!
AD

21
heroku restart나를 위해 일한 해결책이었고, (뒤에서) 이것은 비슷한 트릭이라고 생각합니다. 모든 dyno를 중지하고 새로 시작하면 다시 시작됩니다.
Jochem Schulenklopper

1
이것은 최신 스택 (heroku-18)으로 업그레이드 한 후에 나에게 일어났습니다. 이것을 실행하면 완벽하게 작동했습니다!
robe007

21
$heroku run rails console 

Heroku 로그의 'app crashed'오류보다 훨씬 자세한 오류가 터미널에 표시되므로 가장 좋은 옵션입니다.


1
답변이 아닌 것 같습니다. 질문을 향상시키는 방법에 대한 제안. 이를 위해서는 주석 섹션을 사용해야합니다.
Kamiccolo

3
이것은 실제로 정답입니다. 그러나 위와 동일 stackoverflow.com/a/24113266/376680
mraaroncruz

1
명령이 수행하는 기능을 설명하기 때문에 가장 좋은 대답입니다. v / s ntimba20은 명령에 대한 설명이 부족합니다.
bartoindahouse

18
$ heroku restart

내 dyno를 다시 실행하는 데 도움이되었습니다. 나는 Heroku를 처음 사용하지만 지금은 기쁘다.


14

잘못된 포트에서 듣고있을 때 이런 일이 일어났습니다

listen ()을 "process.env.PORT"로 변경했습니다.

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

대신에

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

11

오늘 저녁에도 같은 문제가있었습니다. 매우 유용한 오류는 아니므로 콘솔에서 실행을 시도했습니다.

heroku run rails c

실패했고 훨씬 더 유용한 오류가 발생했습니다. 프로덕션에서 메소드 호출을 삭제하지 않았습니다. 일단 수정하면 앱이 정상적으로 작동했습니다.


이것은 나를 위해 그것을했다! 로컬 및 Heroku에서 다른 버전의 Ruby를 사용하고 있었으며 결과는이었습니다 SyntaxError. 로그는 많은 정보를 제공하지는 rails c않았지만 수행했습니다.
Matthew White

나에게 문제는 Mail이라는 Model / Table을 만든 것이 었습니다. 이것은 로컬에서 잘 작동했지만이 모델에 ActionMailer를 사용하려고 생각했기 때문에 Heroku에서 작업 충돌이 발생했습니다. heroku 콘솔을 실행하면 H10 App Crashed 오류의 근본을 찾아 낼 수있는 자세한 오류가 발생했습니다.
Zack Weiner

감사합니다.이 문제가 해결되었습니다. 마지막으로 실제 오류 슈퍼 클래스 불일치와 파비콘과 관련된 것은 없습니다
Mauro

5

Git으로 푸시 하여이 문제를 해결했습니다.

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

그런 다음 Heroku로 푸시하십시오.

git push heroku

그런 다음 Heroku에서 db : migrate를 레이크하십시오.

heroku run rake db:migrate

9
나는 그것이 어떻게 차이를 만들지 알지 못한다. 그러나 그것이 당신을 위해 일하게 된 것을 기쁘게 생각합니다 :)
bskool

내 응용 프로그램의 이름을 변경 하고이 문제가 발생했습니다. heroku run rake db : migrate 실행하고 작동합니다 :)
Richlewis

2
마이그레이션 무언가를했기 때문에 Heroku가이 dB로이 아니라
매니 Quintanilla는

3

.gitignore 파일-> heroku을 손상시키는 파일을 포함시키지 못했습니다. #도

작동하는 .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

.gitignore 파일을 만들려면 터미널에서 앱 디렉토리로 이동하여 다음 명령을 사용하십시오.

touch .gitignore

그런 다음 텍스트 편집기에서 열어서 위 코드를 넣을 수 있습니다.


3

제 경우에는 앱에서 ENV 변수를 사용했지만 heroku 구성에서는 설정되지 않았습니다.

heroku 콘솔에서 적절한 오류가 발생했습니다.

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

그런 다음 ENV 구성을 설정하십시오.

heroku config:set AWS_ACCESS_KEY_ID='key'

Heroku를 다시 시작하십시오

heroku restart

효과가있다!!


2

Heroku 에서이 동일한 H10 앱 충돌 오류가 발생했습니다. heroku 인터페이스에서 '모든 dynos 다시 시작'을 클릭하면 문제가 해결되었습니다.


1
나는 또한 똑같은 문제가 있었다. Rails 콘솔에 오류가 표시되지 않았습니다. 앱의 로그에 오류가 없습니다. 명령 행을 통해 재시작을 시도하고 0으로 스케일링 한 다음 백업을 시도했습니다. 아무것도 효과가 없었습니다. 작동 한 유일한 것은 Heroku에 로그인하고 오른쪽 상단의 드롭 다운에서 "모든 dynos 다시 시작"을 클릭하는 것입니다. 당신의 도움을 주셔서 감사합니다!
윌 튜

2

나는했다 H10인해 주요 코드 파일의 잘못된 이름 Heroku가와 노드와 함께. 편집 package.json:

{

  ...

  "main": "correct_file_name.js",

  ...

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

또는 파일 이름을 바꾸십시오.


1

당신이 얻을 경우 참조

bash: bin/rails: No such file or directory

예인 경우 로그에서 (heroku logs -t) 명령을 실행 한 다음 실행하십시오

bundle exec rake rails:update

파일을 덮어 쓰지 마십시오.이 명령은 결국 생성됩니다

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

이 파일들을 heroku로 푸시하면 완료됩니다.


1

내가 겪고있는 문제의 근원은 데이터베이스가 없기 때문입니다. 문제를 해결하려면 먼저 로컬 데이터베이스를 내보냈습니다.

$ 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 

그런 다음 Heroku로 가져 왔습니다.

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

이러한 예에서 대체 할 수있는 변수는 mypassword, myuser, mydbhttp://site.tld/mydb.dump. 덤프를 임시 서버에 업로드해야합니다.

내 모든 문제를 해결 나는 Heroku가에 엔키를 배포하는 방법에 대한 퀵 가이드, 쓴 여기에서 찾을 수 있습니다 .


1

"app crashed"와 같은 위의 오류가 발생했으며 heroku 앱 로그에 오류 메시지 이유와 관련된 많은 정보가 표시되지 않습니다. 그런 다음 heroku에서 dynos를 다시 시작한 다음 설치 프로그램의 index.js 파일 중 하나에 추가 중괄호를 말하는 오류가 표시되었습니다. 문제가 해결되고 heroku에서 앱을 재배치하면 문제가 해결되었습니다.

이것이 같은 문제에 직면 한 누군가에게 도움이되기를 바랍니다.


1

전체 답변 목록을 검토 한 후이 웹 사이트 ( https://status.heroku.com/) 를 우연히 발견했습니다 . 여기에는 Heroku의 현재 상태 / 사건에 대해 자세히 설명되어 있습니다. 벽에 머리를 부딪 치기 전에 사고를 체크 아웃하는 것이 항상 안전합니다. 나를 위해, 위에 언급 된 링크에 게시 된 첨부 된 사건 보고서가 오류를 일으켰습니다.

서버 인시던트 업데이트


1

제 경우에는 Procfile사용했던 모든 것이 깨졌습니다. Heroku는 Procfile앱을 시작할 때 해당 설정을 찾고 적용합니다. 필자가 사용한 dev 설정은 prod 서버에 적합하지 않았습니다. 나는 이름을 바꾸어야 Procfile.dev했고 모든 것이 정상적으로 작동하기 시작했습니다.


1

나는 같은 문제가 있었다, 나는 다음을했다

heroku run rails c

컨트롤러 허용 매개 변수 내에서 구문 오류와 쉼표가 누락되었습니다. 위에서 언급했듯이 Heroku 로그는 문제를 해결하기에 충분한 정보를 제공하지 않았습니다.

이전에 Heroku에서 응용 프로그램이 충돌하는 메시지를 보지 못했습니다.


제 경우에는 uninitialized constantHeroku에 로컬로 존재하지 않는 오류 가있었습니다 . 여전히이 문제를 해결해야하지만 작업중인 배포를 되돌릴 수있었습니다.
Steve Meisner

1

노드를 사용하는 경우 콘솔에서 serve 명령을 직접 실행할 수 있습니다. 내 경우에는 각도 응용 프로그램을 실행 중이므로 다음과 같이 시도했습니다.

heroku run npm start

이것은 응용 프로그램 시작 중 정확한 오류를 보여주었습니다.


1

@Ahmed Elkoussy와 마찬가지로 Puma 서버로 문제를 추적했지만 puma.rb 파일에서 다음 줄을 주석 처리하여 해결했습니다.

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


0

오늘도 같은 문제가 발생했습니다. 내가 그랬어 heroku run rake db:migrate내가 전에 모델을 마이그레이션 불구하고, 응용 프로그램이 충돌하지 않습니다.


0

코드 복사 및 붙여 넣기에 매우주의하십시오. 파일에 블록을 추가 할 때 가끔 형식이 잘못되어 오류가 발생합니다.

전에이 문제가 있었고이 오류가 발생했습니다 : keyword_end를 기대하는 예기치 않은 tIDENTIFIER


복사하고이화물 숭배 프로그래밍라고 당신에게 "서식"의 비트보다 훨씬 더 많은 문제가 발생할 수 이해하지 않고 코드를 붙여
데이비드 마이스터

0

같은 문제가 있었다. 나를 위해 before_action 필터에서 오류가 발생했습니다 (빈 DB 때문에) before_action 필터를 확인하십시오. 아마도 별다른 예외를 던질 수 있습니다.


0

에서가 아닌 하위 디렉토리에서 Rails를 실행하려고 할 때이 문제가 발생했습니다 /. 예를 들어 Angular / Node / Gulp 앱이 실행 중이고 /clientRails 앱이 실행 /server중이지만 둘 다 동일한 git repo에 있었으므로 프론트 엔드와 백엔드의 변경 사항을 추적 할 수 있습니다. Heroku에 배포하려고 할 때이 오류가 발생했습니다. 이 문제가있는 다른 사람을 위해 여기에 하위 디렉토리에서 Rails를 실행할 수있는 사용자 정의 빌드 팩이 있습니다.

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


0

나는 같은 문제 (헤 로쿠의 동일한 오류, 로컬 컴퓨터에서 작업 중)가 있었고 heroku run rails console 오류 메시지없이 실행 된 것을 포함하여 여기에 나열된 모든 솔루션을 시도했습니다 . 나는 시도 heroku run rake db:migrate하고 heroku run rake db:migrate:reset몇 번. 이 중 어느 것도 문제를 해결하지 못했습니다. 프로덕션 환경에서 사용되었지만 개발 환경에서는 사용되지 않는 일부 파일을 살펴보면서 puma.rb 파일의 일부 공백이 범인임을 알았습니다. 이것이 같은 문제를 가진 사람에게 도움이되기를 바랍니다. 이것을 변경하면 작동하게되었습니다.

  ActiveRecord::Base.establish_connection
  End

  ActiveRecord::Base.establish_connection
end

0

Heroku에 배포하는 동안 동일한 문제가 발생했습니다 (앱 충돌). 로그에는 문제가 무엇인지 나타내지 않았습니다. Heroku 콘솔은 추가 대괄호 코드에 구문 오류를 표시했습니다. 놀랍게도 앱을 실행하는 동안 로컬 레일에 문제가 없었으므로 놓쳤습니다. Heroku로 수정하고 git push 한 후에 앱이 Heroku에서 작업하기 시작했습니다!


0

app.set ( 'ip_address', process.env.IP || '127.0.0.1' ) 에서 설정을 업데이트했습니다 .

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

Openshift 호스팅으로 바뀌 었습니다.


0

가이드 페이지에 따라 heroku에서 Puma를 사용하기 시작할 때 동일한 문제가 발생했습니다 .이 문제는 아래 표시된 포트 라인을 주석 처리했을 때 해결되었습니다.

# port        ENV['PORT']     || 3000

따라서 config 디렉토리의 puma.rb에서 위의 줄을 비활성화하면 문제가 해결되었습니다.

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

필자의 경우 git push heroku master마스터 브랜치에 있지 않을 때 공연 을했습니다. 먼저 마스터 지점으로 가서 다른 지점과 코드를 병합 한 다음 자식을 밀어야했습니다.


0

나는 또한 같은 오류가 발생했습니다. .gitignore프로젝트에 파일을 추가하면 문제가 해결되었습니다.

.gitignore파일은 다음과 같습니다.

# Node build artifacts
node_modules
npm-debug.log

# Local development
*.env
*.dev
.DS_Store

# Docker
Dockerfile
docker-compose.yml

그리고 나는 listen()기능을 바꿨다 .

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

나는 그것을 바꿨다.

    const PORT = process.env.PORT || 5000

...

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

0

내가 Dev에 게시하고 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"
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.