Lỗi triển khai Heroku H10 (Ứng dụng bị lỗi)


135

Tôi có một ứng dụng RoR hoạt động trên máy tính cục bộ của mình, nhưng khi tôi gửi nó đến heroku thì nó bị sập. Nhật ký lỗi đưa ra lỗi H10 và cho biết:

    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=

Biên tập:

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

Có ai đã có điều này trước đây, và biết những gì có thể gây ra vấn đề? Tôi không thể tìm ra giải pháp.

Cảm ơn.


Có lỗi tương tự vài tháng trước. Chỉ cần bắt đầu ứng dụng HEROKU mới, và nó giúp. Tôi không có vẻ như bạn đã phá vỡ dyno trong hồ bơi dyno.
Rustem

Thật không may điều này đã không giải quyết vấn đề của tôi.
bskool

Có điều gì bạn cần làm để định cấu hình Relic mới trên Heroku, hoặc có lẽ trong ứng dụng của bạn không? (NewRelic là phần mềm giám sát ứng dụng và máy chủ, do đó, có thể những gì bạn đang thấy là NewRelic khởi động để nói "Ứng dụng đã bị sập"). Ngoài ra, đây là một bài viết SO khác - xem hướng dẫn trong câu trả lời.
Tom Harrison

Cảm ơn đã trả lời. Tôi dường như vẫn không thể vượt qua vấn đề này. Về liên kết mà bạn đã đăng, tôi muốn chỉ ra rằng viên ngọc Heroku bị mất giá và đã được chuyển từ SQLite3 sang PostgreQuery.
bskool

Hãy thử điều này: heroku config: thêm BUILDPACK_URL = github.com/joelcogen/heroku-buildpack-rails-unicorn-nginx
ChuckJHardy

Câu trả lời:


292

Tôi gặp phải lỗi tương tự ở trên, ứng dụng đã bị sập trên heroku (chạy tốt trong dev) nhưng nhật ký lỗi trên heroku không tiết lộ bất kỳ manh mối nào. Tôi đọc các câu trả lời khác trên trang này và toát mồ hôi sau khi thấy "xây dựng lại ứng dụng". Tôi hình dung có lẽ tôi có thể vào bảng điều khiển heroku và nhìn xung quanh. Tôi đã làm và thậm chí giao diện điều khiển bị hỏng, nhưng lần này nó cho tôi biết lý do tại sao. Đó là một số biến tối nghĩa mà tôi quên xóa trong một phiên xử lý sự cố vài giờ trước đó. Tôi không nói rằng bạn sẽ gặp vấn đề tương tự, nhưng tôi đã tìm thấy thêm thông tin khi tôi cố gắng đi qua bảng điều khiển. Hi vọng điêu nay co ich.

$ heroku run rails console

24
Đây là một câu trả lời tuyệt vời, đã giúp tôi khi nhật ký heroku thiếu chi tiết. Cảm ơn.
Mi-chê

8
Chỉ muốn nói rằng, tôi đã có vấn đề này một lần nữa, googled, tìm thấy câu trả lời này, thấy tôi đã nâng cấp nó, và nó đã giải quyết vấn đề của tôi một lần nữa. Cảm ơn @ user3721026. Nếu bạn thấy nhận xét này, vui lòng nêu lại câu trả lời vì tôi không thể: P
mraaroncruz

1
Có cùng mồ hôi khi tôi tìm thấy câu trả lời này, hoàn hảo!
Craig McGuff

3
Tôi đã có vấn đề tương tự ở trăn nhưng thay vào đó lại tình cờ gặp phải. Tương đương có "$ heroku run python Manage.txt shell" ngay lập tức cho tôi thấy những gì đã sai.
dlb8685

11
heroku restartđã giúp tôi xác định vấn đề của mình. binThư mục của tôi bị mất
Steve

44

Tôi có những vấn đề giống nhau. Nhật ký không cung cấp cho tôi bất kỳ manh mối nào. Vì vậy, tôi thu nhỏ lại và thu nhỏ lại các dynos. Điều này giải quyết các vấn đề đối với tôi:

heroku ps:scale web=0

Đợi vài giây ...

heroku ps:scale web=1

3
AKA "khởi động lại" :) Cảm ơn!
AD

21
heroku restartlà giải pháp hiệu quả với tôi và tôi đoán (đằng sau hậu trường) đây là một mẹo tương tự. Khởi động lại sẽ được thực hiện bằng cách dừng tất cả các dynos và bắt đầu lại chúng.
Joool Schulenklopper

1
Điều này đã xảy ra với tôi sau khi nâng cấp lên ngăn xếp mới nhất (heroku-18). Chạy này, làm việc hoàn hảo!
robe007

21
$heroku run rails console 

Đây là tùy chọn tốt nhất vì nó sẽ cung cấp cho bạn một lỗi trong thiết bị đầu cuối của bạn, nó sẽ chi tiết hơn nhiều so với lỗi 'ứng dụng bị lỗi' trong nhật ký Heroku của bạn.


1
Đây không phải là một câu trả lời. Chỉ là một gợi ý làm thế nào để tăng cường câu hỏi. Bạn nên sử dụng phần bình luận cho mục đích này.
Kamiccolo

3
Đây là một câu trả lời, một câu trả lời đúng. Nhưng giống như trên stackoverflow.com/a/24113266/376680
mraaroncruz

1
Đây là câu trả lời tốt nhất bởi vì nó giải thích câu lệnh nào v / s ntimba20 trả lời mà không có lời giải thích về những gì nó làm.
bartoindahouse

18
$ heroku restart

đã giúp tôi có được dyno của tôi chạy lại. Tôi mới biết đến Heroku nhưng rất vui vì giờ tôi đã biết.


14

điều này xảy ra với tôi khi tôi nghe nhầm cổng

Tôi đã thay đổi phần nghe () thành "process.env.PORT" để:

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

thay vì

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

11

Có vấn đề tương tự tối nay. Không phải là một lỗi rất hữu ích vì vậy tôi đã thử chạy trong giao diện điều khiển

heroku run rails c

nó thất bại và cho tôi một lỗi hữu ích hơn nhiều. Tôi đã bỏ qua việc xóa một cuộc gọi phương thức trong sản xuất. Khi tôi sửa nó, ứng dụng hoạt động tốt.


Điều này đã làm điều đó cho tôi! Tôi đã sử dụng một phiên bản khác của Ruby tại địa phương và trên Heroku, và nó đã dẫn đến một SyntaxError. Nhật ký không cung cấp nhiều thông tin, nhưng rails cđã làm.
Matthew White

Đối với tôi, vấn đề là tôi đã tạo Mô hình / Bảng có tên là Thư. Điều này hoạt động tốt trên địa phương, nhưng gây ra xung đột công việc trên Heroku vì nó nghĩ rằng tôi đang cố gắng sử dụng ActionMailer cho mô hình này. Chạy bảng điều khiển heroku đã cho tôi lỗi dài dòng cho phép tôi xác định chính xác lỗi gốc của Lỗi ứng dụng H10
Zack Weiner

Cảm ơn điều này đã giải quyết vấn đề của tôi. Cuối cùng tôi cũng nhận được lỗi không đúng của siêu lớp và không có gì liên quan đến favicon
Mauro

5

Tôi đã giải quyết vấn đề này bằng cách đẩy lên Git:

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

sau đó đẩy tới Heroku:

git push heroku

sau đó rake db: di chuyển trên Heroku:

heroku run rake db:migrate

9
Tôi không thấy điều đó sẽ tạo ra sự khác biệt như thế nào. Nhưng rất vui vì nó hiệu quả với bạn :)
bskool

Tôi đã đổi tên ứng dụng của mình và gặp sự cố này, chạy heroku chạy rake db: di chuyển và nó hoạt động :)
Richlewis

2
Điều này chỉ bởi vì bạn đã có một cái gì đó để di chuyển sang heroku db
Manny Quintanilla

3

Tôi quản lý để không bao gồm tệp .gitignore của tôi -> phá vỡ heroku. #doh

Đây là một tập tin .gitignore đang hoạt động

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

Để tạo tệp .gitignore, trong terminal điều hướng đến thư mục ứng dụng của bạn và sử dụng lệnh sau

touch .gitignore

Sau đó, bạn có thể mở nó trong một trình soạn thảo văn bản của bạn và đặt đoạn mã trên vào nó.


3

Trong trường hợp của tôi, tôi đã sử dụng các biến ENV trong ứng dụng của mình, nhưng nó không được đặt trong cấu hình heroku.

Bảng điều khiển heroku đã đưa ra lỗi thích hợp:

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

Sau đó đặt cấu hình ENV

heroku config:set AWS_ACCESS_KEY_ID='key'

Khởi động lại Heroku

heroku restart

nó hoạt động !!


2

Tôi đã nhận được cùng một ứng dụng H10 bị lỗi trong Heroku. Tôi đã nhấp vào 'khởi động lại tất cả các dynos' trong giao diện heroku và vấn đề đã được giải quyết.


1
Tôi cũng có vấn đề chính xác tương tự. Bảng điều khiển Rails không hiển thị bất kỳ lỗi nào. Không có lỗi trong nhật ký từ ứng dụng. Đã thử khởi động lại thông qua dòng lệnh, cố gắng giảm xuống 0 và sau đó sao lưu. Không có gì làm việc. Điều duy nhất hiệu quả là đăng nhập vào Heroku và nhấp vào "khởi động lại tất cả các dynos" trong danh sách thả xuống ở trên cùng bên phải. Cảm ơn bạn đã giúp đỡ!
Sẽ bắt đầu

2

Tôi đã H10có Heroku và Node do tên sai của tệp mã chính. Chỉnh sửa package.json:

{

  ...

  "main": "correct_file_name.js",

  ...

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

Hoặc đổi tên tập tin.


1

Xem nếu bạn nhận được

bash: bin/rails: No such file or directory

trong nhật ký trong khi chạy lệnh (heroku log -t) nếu có thì vui lòng Chạy

bundle exec rake rails:update

Đừng ghi đè lên các tệp của bạn, cuối cùng lệnh này sẽ tạo

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

đẩy các tập tin này đến heroku và bạn đã hoàn thành


1

Căn nguyên của vấn đề tôi gặp phải là do không có cơ sở dữ liệu. Để giải quyết vấn đề trước tiên tôi đã xuất cơ sở dữ liệu cục bộ của mình:

$ 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 

Sau đó nhập nó vào Heroku:

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

Các biến để thay thế trong những ví dụ là: mypassword, myuser, mydb&http://site.tld/mydb.dump . Lưu ý rằng tôi đã phải tải lên bãi chứa đến một máy chủ tạm thời.

Giải quyết tất cả các vấn đề của tôi, tôi đã viết một hướng dẫn nhanh về cách triển khai Enki đến Heroku, có thể tìm thấy ở đây .


1

Tôi đã gặp lỗi tương tự như "ứng dụng bị lỗi" và nhật ký ứng dụng heroku không hiển thị nhiều thông tin liên quan đến lý do thông báo lỗi. Sau đó, tôi khởi động lại các dynos trong heroku và sau đó nó xuất hiện lỗi cho biết thêm dấu ngoặc nhọn trong một trong các tệp index.js trong thiết lập của tôi. Vấn đề đã được khắc phục khi nó được gỡ bỏ và triển khai lại ứng dụng trên heroku.

Hy vọng điều này sẽ hữu ích cho ai đó đối mặt với cùng một vấn đề.


1

Sau khi xem qua toàn bộ danh sách các câu trả lời, tôi tình cờ thấy trang web này: https://status.heroku.com/ trong đó nêu chi tiết về tình trạng / sự cố hiện tại với Heroku. Nó luôn an toàn để kiểm tra các sự cố trước khi đập đầu vào tường. Đối với tôi, chính báo cáo sự cố đính kèm được công bố trên đường dẫn đã đề cập ở trên đã gây ra lỗi.

CẬP NHẬT MÁY CHỦ


1

Trong trường hợp của Procfiletôi, tôi sử dụng đã phá vỡ mọi thứ. Heroku tìm kiếm Procfilevà áp dụng các cài đặt của nó khi khởi chạy ứng dụng - rõ ràng các cài đặt dev tôi đã sử dụng không có ý nghĩa gì đối với máy chủ prod. Tôi đã phải đổi tên nó thành Procfile.devvà mọi thứ bắt đầu hoạt động bình thường.


1

Tôi đã có cùng một vấn đề, tôi đã làm như sau

heroku run rails c

Nó xác định một lỗi cú pháp và thiếu dấu phẩy trong các tham số cho phép của bộ điều khiển. Như đã đề cập ở trên, nhật ký Heroku không cung cấp đủ thông tin để giải quyết vấn đề.

Tôi chưa thấy ứng dụng bị sập tin nhắn trên Heroku trước đây.


Trong trường hợp của tôi, có một uninitialized constantlỗi trên Heroku không có ở địa phương. Trong khi tôi vẫn cần giải quyết điều đó, tôi đã có thể đưa ra một triển khai hoạt động trở lại.
Steve Meisner

1

Nếu bạn đang sử dụng Node, bạn có thể thử chạy lệnh phục vụ trực tiếp trong bảng điều khiển. Trong trường hợp của tôi, tôi đang chạy một ứng dụng góc cạnh, vì vậy tôi đã thử với:

heroku run npm start

Điều này cho tôi thấy lỗi chính xác trong quá trình khởi động ứng dụng.


1

Tôi đã truy tìm vấn đề của mình trở lại máy chủ Puma cũng như @AHmed Elkoussy, nhưng tôi đã giải quyết chỉ bằng cách bình luận dòng sau trên tệp puma.rb:

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


0

Tôi gặp phải vấn đề tương tự ngày hôm nay. Tôi đã làm heroku run rake db:migratemặc dù tôi đã di chuyển mô hình trước đó và ứng dụng không gặp sự cố.


0

Hãy rất thận trọng với bản sao và dán mã. Đôi khi khi bạn thêm một khối vào một tệp, nó được định dạng không chính xác và sẽ gây ra lỗi.

Tôi đã gặp vấn đề này trước đây và đã gặp phải lỗi này: TIDENTIFIER không mong đợi, mong đợi từ khóa_end


sao chép và dán mã mà không hiểu nó được gọi là lập trình sùng bái hàng hóa và sẽ gây ra cho bạn nhiều vấn đề hơn một chút về "định dạng"
David Meister

0

Có vấn đề tương tự. đối với tôi, đó là lỗi trong các bộ lọc before_action (vì DB trống) Kiểm tra các bộ lọc before_action của bạn, có thể chúng ném ra các ngoại lệ không được phép.


0

Tôi gặp vấn đề này khi cố chạy Rails trong thư mục con, và không vào /. Ví dụ: tôi đã chạy ứng dụng Angular / Node / Gulp /clientvà ứng dụng Rails chạy trong/server , nhưng cả hai đều trong cùng một repo git, vì vậy tôi có thể theo dõi các thay đổi ở mặt trước và mặt sau. Tôi đã gặp lỗi này khi cố gắng triển khai chúng lên Heroku. Đối với bất kỳ ai khác có vấn đề này, đây là một gói xây dựng tùy chỉnh sẽ cho phép chạy Rails trong thư mục con.

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


0

Tôi có cùng một vấn đề (cùng một lỗi trên heroku, làm việc trên máy cục bộ) và tôi đã thử tất cả các giải pháp được liệt kê ở đây bao gồm cả heroku run rails console chạy mà không có thông báo lỗi. Tôi đã thử heroku run rake db:migrateheroku run rake db:migrate:resetmột vài lần. Không ai trong số này giải quyết vấn đề. Khi xem qua một số tệp được sử dụng trong sản xuất nhưng không phải trong môi trường dev, tôi thấy một số khoảng trắng trong tệp puma.rb là thủ phạm. Hy vọng điều này sẽ giúp một người có cùng một vấn đề. Thay đổi điều này làm cho nó hoạt động

  ActiveRecord::Base.establish_connection
  End

đến

  ActiveRecord::Base.establish_connection
end

0

Tôi gặp vấn đề tương tự trong khi triển khai Heroku (sự cố ứng dụng). Nhật ký không cho biết vấn đề có thể là gì. Bảng điều khiển Heroku hiển thị lỗi cú pháp trong mã của dấu ngoặc phụ. Đáng ngạc nhiên, tôi không gặp vấn đề gì với đường ray cục bộ trong khi chạy ứng dụng và do đó đã bỏ lỡ nó. Sau khi sửa và git đẩy Heroku, ứng dụng bắt đầu hoạt động trên Heroku!


0

Tôi đã cập nhật cài đặt của mình từ app.set ('ip_address', process.env.IP || '127.0.0.1' );

đến

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

mà tôi đã thay đổi cho lưu trữ Openshift


0

Tôi gặp vấn đề tương tự khi tôi bắt đầu sử dụng Puma trong heroku theo trang hướng dẫn của họ , vấn đề này đã được giải quyết khi tôi nhận xét dòng cổng hiển thị bên dưới

# port        ENV['PORT']     || 3000

Vì vậy, việc vô hiệu hóa dòng trên trong puma.rb trong thư mục cấu hình đã giải quyết được vấn đề

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

Trong trường hợp của tôi, tôi đã biểu diễn git push heroku masterkhi tôi không ở trong nhánh chính. Tôi đã phải đi đến nhánh chính trước, hợp nhất mã với nhánh khác của tôi và sau đó git đẩy.


0

Tôi cũng gặp phải lỗi tương tự. Thêm một.gitignore tập tin vào dự án của tôi đã giải quyết vấn đề của tôi.

.gitignoreTập tin của tôi ở đây:

# Node build artifacts
node_modules
npm-debug.log

# Local development
*.env
*.dev
.DS_Store

# Docker
Dockerfile
docker-compose.yml

Và tôi đã thay đổi listen()chức năng;

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

Tôi đã thay đổi nó thành;

    const PORT = process.env.PORT || 5000

...

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

0

Giải pháp tôi đã đăng trên Dev và làm việc cho hầu hết mọi người bằng React:

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

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"
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.