Kesalahan penerapan Heroku H10 (Aplikasi mogok)


138

Saya memiliki aplikasi RoR yang berfungsi di komputer lokal saya, tetapi ketika saya mengirimkannya ke heroku, aplikasi tersebut macet. Log kesalahan memberikan kesalahan H10 & mengatakan:

    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=

Edit:

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

Adakah yang pernah mengalami ini sebelumnya, dan tahu apa yang mungkin menyebabkan masalah? Saya tidak dapat menemukan solusi.

Terima kasih.


Memiliki kesalahan yang sama beberapa bulan sebelumnya. Baru saja memulai aplikasi HEROKU baru, dan ini membantu. Sepertinya Anda telah merusak dyno di kolam dyno.
Rustem

Sayangnya, ini tidak menyelesaikan masalah saya.
bskool

Adakah yang perlu Anda lakukan untuk mengonfigurasi New Relic di Heroku, atau mungkin di aplikasi Anda? (NewRelic adalah perangkat lunak pemantau server dan aplikasi, jadi mungkin saja yang Anda lihat adalah NewRelic yang mengatakan "Aplikasi mogok"). Juga, inilah posting SO lainnya - lihat instruksi dalam jawaban.
Tom Harrison

Terima kasih atas balasannya tharrison. Sepertinya saya masih belum bisa melupakan masalah ini. Mengenai tautan yang Anda posting, saya ingin menunjukkan bahwa permata Heroku disusutkan dan telah bermigrasi dari SQLite3 ke PostgreSQL.
bskool

Coba ini: konfigurasi heroku: tambahkan BUILDPACK_URL = github.com/joelcogen/heroku-buildpack-rails-unicorn-nginx
ChuckJHardy

Jawaban:


300

Saya mengalami kesalahan yang sama di atas, aplikasi mogok di heroku (berjalan dengan baik di dev) tetapi log kesalahan pada heroku tidak mengungkapkan petunjuk apa pun. Saya membaca jawaban lain di halaman ini dan berkeringat setelah melihat "membangun kembali aplikasi." Saya pikir mungkin saya bisa masuk ke konsol heroku dan melihat-lihat. Saya melakukannya dan bahkan konsolnya rusak, tetapi kali ini saya diberitahu mengapa. Itu adalah beberapa variabel tidak jelas yang lupa saya hapus selama sesi pemecahan masalah beberapa jam sebelumnya. Saya tidak mengatakan Anda akan mengalami masalah yang sama, tetapi saya menemukan lebih banyak info ketika saya mencoba melalui konsol. Semoga ini membantu.

$ heroku run rails console

24
Ini adalah jawaban yang bagus, membantu saya ketika log heroku tidak memiliki detail. Terima kasih.
Mikha

8
Hanya ingin mengatakan, saya mengalami masalah ini lagi, mencari di Google, menemukan jawaban ini, melihat saya telah memilihnya, dan itu menyelesaikan masalah saya lagi. Terima kasih @ user3721026. Jika Anda melihat komentar ini, silakan berikan suara positif untuk jawabannya lagi karena saya tidak bisa: P
mraaroncruz

1
berkeringat sama ketika saya menemukan jawaban ini, sempurna!
Craig McGuff

3
Saya memiliki masalah yang sama dengan python tetapi tersandung di sini sebagai gantinya. Yang setara adalah "$ heroku run python manage.py shell" yang langsung menunjukkan kepada saya apa yang salah.
dlb8685

13
heroku restartmembantu saya mengidentifikasi masalah saya. binFolder saya hilang.
Steve

45

Saya mengalami masalah yang sama. Log juga tidak memberi saya petunjuk apa pun. Jadi saya memperkecil dan meningkatkan kembali dynos. Ini memecahkan masalah saya:

heroku ps:scale web=0

Menunggu beberapa detik ...

heroku ps:scale web=1

3
AKA "restart" :) Terima kasih!
AD

21
heroku restartadalah solusi yang berhasil untuk saya, dan saya kira (di balik layar) ini adalah trik yang serupa. Memulai ulang akan diterapkan dengan menghentikan semua dynos dan memulainya lagi.
Jochem Schulenklopper

1
Ini terjadi pada saya setelah meningkatkan ke tumpukan terbaru (heroku-18). Menjalankan ini, bekerja dengan sempurna!
robe007

21
$heroku run rails console 

Ini adalah opsi terbaik karena ini akan memberi Anda kesalahan di terminal Anda yang akan jauh lebih rinci daripada kesalahan 'aplikasi macet' di log Heroku Anda.


1
Sepertinya ini bukan jawaban. Hanya saran bagaimana meningkatkan pertanyaan. Anda harus menggunakan bagian komentar untuk tujuan ini.
Kamiccolo

3
Ini adalah jawaban yang benar. Tetapi sama seperti di atas stackoverflow.com/a/24113266/376680
mraaroncruz

1
Ini jawaban terbaik karena menjelaskan apa yang dilakukan perintah v / s ntimba20 menjawab yang tidak memiliki penjelasan tentang apa yang dilakukannya.
bartoindahouse

18
$ heroku restart

membantu saya menjalankan dyno saya kembali. Saya baru mengenal Heroku tapi senang saya tahu sekarang.


14

ini terjadi pada saya ketika saya mendengarkan di port yang salah

Saya mengubah listening () saya menjadi "process.env.PORT" jadi:

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

dari pada

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

11

Punya masalah yang sama malam ini. Bukan kesalahan yang sangat membantu jadi saya mencoba menjalankannya di konsol

heroku run rails c

itu gagal dan memberi saya kesalahan yang jauh lebih bermanfaat. Saya telah mengabaikan untuk menghapus panggilan metode dalam produksi. Setelah saya memperbaikinya, aplikasi berfungsi dengan baik.


Ini berhasil untuk saya! Saya menggunakan versi Ruby yang berbeda secara lokal dan di Heroku, dan hasilnya adalah SyntaxError. Log tidak memberikan banyak informasi, tetapi memberi rails c.
Matthew White

Bagi saya masalahnya adalah saya membuat Model / Tabel bernama Mail. Ini berfungsi dengan baik di lokal, tetapi menyebabkan konflik Pekerjaan di Heroku karena mengira saya mencoba menggunakan ActionMailer untuk model ini. Menjalankan konsol heroku memberi saya kesalahan verbose yang memungkinkan saya untuk menentukan akar dari kesalahan H10 App H10
Zack Weiner

Terima kasih ini memecahkan masalah saya. Saya akhirnya mendapatkan ketidakcocokan superclass kesalahan nyata dan tidak ada yang berhubungan dengan favicon
Mauro

5

Saya memecahkan masalah ini dengan mendorong ke Git:

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

lalu dorong ke Heroku:

git push heroku

lalu rake db: bermigrasi di Heroku:

heroku run rake db:migrate

10
Saya tidak melihat bagaimana hal itu akan membuat perbedaan. Tapi senang itu berhasil untuk Anda :)
bskool

saya mengganti nama aplikasi saya dan mengalami masalah ini, menjalankan heroku run rake db: migrate and it works :)
Richlewis

2
Ini hanya karena Anda memiliki sesuatu untuk bermigrasi ke heroku db
Manny Quintanilla

3

Saya berhasil tidak menyertakan file .gitignore saya -> yang merusak heroku. #doh

Ini adalah file .gitignore yang berfungsi

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

Untuk membuat file .gitignore, di terminal arahkan ke direktori aplikasi Anda dan gunakan perintah berikut

touch .gitignore

Kemudian Anda dapat membukanya di editor teks Anda dan memasukkan kode di atas ke dalamnya.


3

Dalam kasus saya, saya menggunakan variabel ENV di aplikasi saya, tetapi tidak disetel di konfigurasi heroku.

konsol heroku memberikan kesalahan yang tepat:

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

Kemudian atur konfigurasi ENV

heroku config:set AWS_ACCESS_KEY_ID='key'

Mulai ulang Heroku

heroku restart

berhasil!!


2

Saya mendapatkan kesalahan error aplikasi H10 yang sama di Heroku. Saya mengklik 'restart semua dynos' di antarmuka heroku, dan masalah terpecahkan.


2
Saya juga punya masalah yang sama persis. Konsol rel tidak menunjukkan kesalahan apa pun. Tidak ada kesalahan dalam log dari aplikasi. Mencoba memulai ulang melalui baris perintah, mencoba menurunkan skala ke 0 lalu kembali ke atas. Tidak ada yang berhasil. Satu-satunya hal yang berhasil adalah masuk ke Heroku dan mengklik "restart semua dynos" di menu tarik-turun di kanan atas. Terima kasih atas bantuan Anda!
Akan Tew

2

Saya memiliki H10Heroku dan Node karena nama yang salah dari file kode utama. Edit package.json:

{

  ...

  "main": "correct_file_name.js",

  ...

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

Atau ganti nama file.



1

Lihat apakah Anda mengerti

bash: bin/rails: No such file or directory

di log saat menjalankan perintah (heroku logs -t) jika ya maka silakan Jalankan

bundle exec rake rails:update

Jangan menimpa file Anda, pada akhirnya perintah ini akan dibuat

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

mendorong file-file ini ke heroku dan selesai.


1

Akar masalah yang saya hadapi adalah karena tidak memiliki database. Untuk mengatasi masalah, saya pertama kali mengekspor database lokal saya:

$ 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 

Kemudian mengimpornya ke Heroku:

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

Variabel untuk mengganti dalam contoh ini adalah: mypassword, myuser, mydb& http://site.tld/mydb.dump. Perhatikan bahwa saya harus mengunggah dump ke server sementara.

Menyelesaikan semua masalah saya, saya menulis panduan singkat tentang cara menerapkan Enki ke Heroku, yang dapat ditemukan di sini .


1

Saya mendapat kesalahan yang sama di atas sebagai "aplikasi mogok" dan log aplikasi heroku tidak menunjukkan banyak info terkait dengan alasan pesan kesalahan. Kemudian saya memulai ulang dynos di heroku dan kemudian menunjukkan kesalahan yang mengatakan kurung kurawal tambahan di salah satu file index.js di pengaturan saya. Masalah diperbaiki setelah dihapus dan diterapkan ulang aplikasi di heroku.

Semoga ini bisa membantu seseorang yang menghadapi masalah yang sama.


1

Setelah melalui seluruh daftar jawaban, saya menemukan situs web ini: https://status.heroku.com/ yang merinci status / insiden saat ini dengan Heroku. Selalu aman untuk memeriksa insiden sebelum membenturkan kepala Anda ke dinding. Bagi saya, laporan insiden terlampir yang diterbitkan pada tautan yang disebutkan di atas itulah yang menyebabkan kesalahan.

PEMBARUAN INSIDEN SERVER


1

Dalam kasus saya, yang Procfilesaya gunakan melanggar segalanya. Heroku mencari Procfiledan menerapkan pengaturannya saat meluncurkan aplikasi - jelas pengaturan dev yang saya gunakan tidak masuk akal untuk server prod. Saya harus mengganti namanya menjadi Procfile.devdan semuanya mulai berfungsi normal.


1

Saya memiliki masalah yang sama, saya melakukan hal berikut

heroku run rails c

Ini mengidentifikasi kesalahan sintaks dan koma yang hilang dalam parameter yang diizinkan pengontrol. Seperti disebutkan di atas, log Heroku tidak memberikan informasi yang cukup untuk memecahkan masalah.

Saya belum pernah melihat pesan aplikasi rusak di Heroku sebelumnya.


Dalam kasus saya, ada uninitialized constantkesalahan di Heroku yang tidak ada secara lokal. Meskipun saya masih perlu menyelesaikannya, saya bisa mendapatkan penerapan yang berfungsi kembali.
Steve Meisner

1

Jika Anda menggunakan Node, Anda dapat mencoba menjalankan perintah serve langsung di konsol. Dalam kasus saya, saya menjalankan aplikasi sudut, jadi saya mencoba dengan:

heroku run npm start

Ini menunjukkan kepada saya kesalahan yang tepat selama startup aplikasi.


1

Saya menelusuri masalah saya kembali ke server Puma seperti yang dilakukan @Ahmed Elkoussy, tetapi saya menyelesaikannya hanya dengan mengomentari baris berikut di file puma.rb:

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


0

Saya mengalami masalah yang sama hari ini. Saya melakukannya heroku run rake db:migratemeskipun saya memigrasi model sebelumnya, dan aplikasi tidak macet.


0

Berhati-hatilah saat menyalin dan menempel kode. Terkadang saat Anda menambahkan blok ke dalam file, format tersebut salah dan akan menghasilkan kesalahan.

Saya pernah mengalami masalah ini sebelumnya dan mendapatkan kesalahan ini: tIDENTIFIER tidak terduga, mengharapkan keyword_end


menyalin dan menempelkan kode tanpa memahaminya disebut pemrograman kultus kargo dan akan menyebabkan Anda jauh lebih banyak masalah daripada sedikit "pemformatan"
David Meister

0

Punya masalah yang sama. bagi saya itu adalah kesalahan dalam filter before_action (karena DB kosong) Periksa filter before_action Anda, mungkin mereka membuang pengecualian yang tidak terkendali.


0

Saya mengalami masalah ini saat mencoba menjalankan Rails di subdirektori, bukan di /. Misalnya, saya menjalankan aplikasi Angular / Node / Gulp /clientdan menjalankan aplikasi Rails /server, tetapi keduanya berada di repo git yang sama, jadi saya dapat melacak perubahan di front end dan back end. Saya mendapatkan kesalahan ini saat mencoba menerapkannya ke Heroku. Bagi siapa pun yang mengalami masalah ini, berikut adalah buildpack khusus yang memungkinkan menjalankan Rails di subdirektori.

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


0

Saya memiliki masalah yang sama (kesalahan yang sama pada heroku, bekerja pada mesin lokal) dan saya mencoba semua solusi yang tercantum di sini termasuk heroku run rails console yang berjalan tanpa pesan kesalahan. Saya mencoba heroku run rake db:migratedan heroku run rake db:migrate:resetbeberapa kali. Semua ini tidak menyelesaikan masalah. Saat menelusuri beberapa file yang digunakan dalam produksi tetapi tidak di lingkungan dev, saya menemukan beberapa spasi di file puma.rb sebagai pelakunya. Semoga ini bisa membantu seseorang yang memiliki masalah yang sama. Mengubah ini membuatnya berhasil

  ActiveRecord::Base.establish_connection
  End

untuk

  ActiveRecord::Base.establish_connection
end

0

Saya mengalami masalah yang sama saat menerapkan ke Heroku (kerusakan aplikasi). Log tidak menunjukkan apa masalahnya. Konsol Heroku menampilkan kesalahan sintaks dalam kode tanda kurung ekstra. Anehnya, saya tidak memiliki masalah pada rel lokal saat menjalankan aplikasi dan karenanya melewatkannya. Setelah koreksi dan git push ke Heroku, aplikasi mulai berfungsi di Heroku!


0

Saya memperbarui pengaturan saya dari app.set ('ip_address', process.env.IP || '127.0.0.1' );

untuk

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

yang saya ubah untuk hosting Openshift


0

Saya memiliki masalah yang sama ketika saya mulai menggunakan Puma di heroku sesuai halaman panduan mereka , masalah ini terpecahkan ketika saya mengomentari baris port yang ditunjukkan di bawah ini

# port        ENV['PORT']     || 3000

Jadi, menonaktifkan baris di atas di puma.rb di direktori config menyelesaikan masalah

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

Dalam kasus saya, saya tampil git push heroku mastersaat saya tidak berada di cabang master. Saya harus pergi ke cabang master terlebih dahulu, menggabungkan kode dengan cabang saya yang lain dan kemudian git didorong.


0

Saya juga mengalami kesalahan yang sama. Menambahkan file.gitignore file ke proyek saya menyelesaikan masalah saya.

.gitignoreFile saya ada di sini:

# Node build artifacts
node_modules
npm-debug.log

# Local development
*.env
*.dev
.DS_Store

# Docker
Dockerfile
docker-compose.yml

Dan saya mengubah listen()fungsi;

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

Saya mengubahnya menjadi;

    const PORT = process.env.PORT || 5000

...

    app.listen(PORT, function() {
    console.log("Server running on port 5000...");
    });
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.