2012-11-21 163 views
97

我有一個RoR應用程序在我的本地計算機上工作,但是當我將它發送到heroku時,它崩潰。錯誤日誌給出錯誤H10 &說: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 

有沒有人有這個,並知道什麼可能導致這個問題?我找不到解決方案。

謝謝。

+0

幾個月前有同樣的錯誤。剛開始新的HEROKU應用程序,它有幫助。我看起來好像你已經在動態水池中打破了動態測試。 – Rustem

+0

不幸的是,這並沒有解決我的問題。 – bskool

+0

你有什麼需要做的配置New Relic Heroku,或者你的應用程序? (NewRelic是服務器和應用程序監控軟件,所以你可能會看到NewRelic踢「App崩潰」)。此外,[這是另一個SO帖子](http://stackoverflow.com/questions/13446449/rails-heroku-deploying-for-the-first-time-failed) - 請參閱答案中的說明。 –

回答

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' 

在這些例子中,以取代變量是:mypasswordmyusermydb & http://site.tld/mydb.dump。請注意,我必須將轉儲上傳到臨時服務器。

解決我所有的問題我寫了關於如何將Enki部署到Heroku的快速指南,which can be found here

0

今天我遇到了同樣的問題。我做了heroku run rake db:migrate,但我之前已經遷移過該模型,並且該應用沒有崩潰。

5

我解決了這個問題推到Git的方法:

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

然後推入的Heroku:

git push heroku 

然後耙分貝:遷移在Heroku:

heroku run rake db:migrate 
+2

對我來說不起作用... – Melki

+8

我不明白這會如何改變。但很高興它爲你工作:) – bskool

+0

我改名爲我的應用程序,並有這個問題,運行heroku運行耙分貝:遷移和它的作品:) – Richlewis

197

我跑進上面的同樣的錯誤,應用程序在heroku上崩潰(在dev中運行正常),但在heroku上的錯誤日誌沒有透露任何線索。我看了這個頁面上的其他答案,並在看到「重建應用程序」後出現汗流broke背。我想,也許我可以進入heroku控制檯並環顧四周。我做了,甚至控制檯崩潰了,但這次它告訴我爲什麼。這是我在早些時候的一個疑難解答會議期間忘記刪除的一些難以理解的變量。我並不是說你會遇到同樣的問題,但是當我嘗試通過控制檯時,我發現了更多信息。希望這可以幫助。

$heroku run rails console 
+12

這是一個很好的答案,當heroku日誌缺乏細節時幫助我。謝謝。 – Micah

+3

只是想說,我再次遇到了這個問題,用Google搜索了一下,發現了這個答案,看到我提出了這個問題,並且它再次解決了我的問題。謝謝@ user3721026。如果你看到這個評論,請再次提出答案,因爲我不能:P – mraaroncruz

+1

當我發現這個答案時,汗水一樣完美! –

17
$heroku run rails console 

這是因爲它會給你在你的終端中的錯誤,這將是更詳細的比你的Heroku日誌「應用程序崩潰」的錯誤是最好的選擇。

+1

這似乎不是一個答案。只是一個建議如何加強問題。您應該爲此使用評論部分。 – Kamiccolo

+2

這是一個答案,實際上是正確答案。但與上面相同http://stackoverflow.com/a/24113266/376680 – mraaroncruz

+0

它是最好的答案,因爲它解釋了什麼命令做v/s ntimba20答案,缺乏解釋它做什麼。 – bartoindahouse

2

我設法不包含我的.gitignore文件 - >這打破了heroku。 #doh

這裏是一個工作的.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 

然後你就可以在你的文本編輯器打開它,並把上面的代碼到它。

0

對拷貝和粘貼代碼非常謹慎。有時,當您將一個塊添加到文件中時,它的格式不正確並會產生錯誤。

我收到這個問題,並得到這個錯誤:意外tIDENTIFIER,期待keyword_end

+0

不理解它的複製和粘貼代碼被稱爲貨物崇拜編程,會導致你比「格式化」 –

1

看看你是否在日誌中獲取

bash: bin/rails: No such file or directory 

運行時,如果是的話(Heroku的日誌-t)命令請運行

bundle exec rake rails:update 

不要覆蓋你的文件,到底該命令將創建

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

將這些文件推送到heroku,你就完成了。

0

有同樣的問題。對我來說,它是在before_action過濾器錯誤(因爲空的數據庫) 檢查您的before_action過濾器,也許他們扔unitledled exeptions。

8

這發生在我身上時,我是聽錯埠

我改變了我的聽(),以 「process.env.PORT」 等:中

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

代替

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

我試圖在子目錄中運行Rails時出現此問題,而在/中未出現此問題。例如,我有一個運行在/client的Angular/Node/Gulp應用程序和一個運行在/server的Rails應用程序,但他們都在同一個git倉庫中,所以我可以跟蹤前端和後端的更改。試圖將它們部署到Heroku時出現此錯誤。對於有此問題的其他人,這裏是一個定製的buildpack,它允許在子目錄中運行Rails。

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

0

我有同樣的問題(同樣的錯誤在Heroku上,本地機器上工作),我試圖在這裏列出的所有解決方案,包括 heroku run rails console 跑沒有錯誤消息。我幾次試過heroku run rake db:migrateheroku run rake db:migrate:reset。這些都沒有解決問題。在瀏覽一些在生產環境中使用但不在開發環境中的文件時,我發現puma.rb文件中有一些空白是罪魁禍首。希望這可以幫助有同樣問題的人。 改變,這使得它的工作

ActiveRecord::Base.establish_connection 
    End 

ActiveRecord::Base.establish_connection 
end 
30

我有同樣的問題。日誌也沒有給我任何線索。 所以我縮小了比例並縮小了動力。這解決了這個問題對我來說:

heroku ps:scale web=0 

等了幾秒鐘......

heroku ps:scale web=1 
+3

AKA「restart」:)更多的問題謝謝! –

+14

'heroku restart'是解決方案,對我來說,我猜(幕後)這是一個類似的伎倆。重新啓動將通過停止所有的dynos並重新啓動它們來實現。 –

+0

這對我有效。謝謝! –

2

我得到這個相同的H10應用在Heroku的崩潰錯誤。我在heroku界面中點擊'restart all dynos',問題就解決了。

+1

我也有完全相同的問題。 Rails控制檯沒有顯示任何錯誤。從應用程序的日誌中沒有錯誤。嘗試通過命令行重新啓動,嘗試縮小到0,然後備份。沒有工作。唯一有效的工作是登錄到Heroku並點擊右上角下拉菜單中的「重新啓動所有dynos」。謝謝你的幫助! –

9
$ heroku restart 

幫助我讓我的測功機再次運行。我是Heroku新手,但很高興現在知道。

+0

@bskool請讓這個接受的答案。這將有助於所有未來的訪問者找到與您遇到的相同問題的快速解決方案。 Thx – Evolve

7

今天晚上有同樣的問題。不是一個非常有用的錯誤,所以我試圖在控制檯

heroku run rails c 

它沒有運行,並給了我一個更有益的錯誤。我忽略了在生產中刪除方法調用。一旦我解決了這個問題,應用程序運行良好。

+0

這是爲我做的!我在本地和Heroku上使用了不同版本的Ruby,導致了一個'SyntaxError'。日誌並沒有提供太多的信息,但是「軌道c」沒有。 –

+0

對我來說,問題是我創建了一個名爲Mail的Model/Table。這在本地運行良好,但在Heroku上導致Job衝突,因爲它認爲我正在嘗試爲此模型使用ActionMailer。運行heroku控制檯給了我詳細的錯誤信息,使我能夠查明H10 App Crashed錯誤的根源 –

0

我在部署到Heroku(應用程序崩潰)時遇到同樣的問題。日誌沒有說明問題可能是什麼。 Heroku控制檯在額外括號的代碼中顯示語法錯誤。令人驚訝的是,在運行應用程序時,我在本地軌道上沒有問題,因此錯過了它。經過糾正和git推到Heroku,該應用程序開始在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託管

1

在我來說,我是用我的應用程序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 

它的作品!

0

我得到了與「應用程序崩潰」相同的上述錯誤,而且heroku應用程序日誌未顯示與錯誤消息原因相關的許多信息。然後我重新啓動了heroku中的dynos,然後在我的設置中的index.js文件之一中顯示錯誤,說明附加大括號。一旦它被移除並重新部署heroku上的應用程序,該問題就得到解決。

希望這會對面臨同樣問題的人有所幫助。

0

由於主代碼文件的名稱錯誤,我有H10與Heroku和節點。編輯package.json

{ 

    ... 

    "main": "correct_file_name.js", 

    ... 

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

或重命名文件。

0

在瀏覽完整答案列表後,我偶然發現了這個網站:https://status.heroku.com/,其中詳細介紹了Heroku的當前狀態/事件。在將你的頭撞在牆上之前,它總是安全的檢查事件。對我而言,這是上述鏈接發佈的附帶事件報告導致的錯誤。

SERVER INCIDENT UPDATE

相關問題