5
respostas

Aplicação com "APP Crashed" no Heroku

A aplicação desenvolvida no curso apresenta o erro abaixo (normalmente ao tentar cadastrar um segundo produto no "/produtos/form"), fica repetindo essa mensagem no log e depois de um tempo a aplicação sobe novamente, funciona e volta a dar o mesmo erro e fica nessa:

2017-05-03T01:53:03.454916+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/socket.io/?EIO=3&transport=polling&t=LlC0guR" 
...
5 respostas

oi andre, só com essa msg de log não da para a gente saber.. não aparece mais nada? precisamos de mais informações para tentar descobrir.

Olá Alberto. Achei que fosse algo comum, conhecido, então coloquei só a mensagem que fica repetindo no log. Vou colocar abaixo o log completo:

2017-05-06T22:45:33.770285+00:00 app[web.1]: Conexao 3 - Produção!!
2017-05-06T22:45:33.888774+00:00 app[web.1]: null
2017-05-06T22:45:33.887509+00:00 heroku[router]: at=info method=GET path="/produtos" host=casadocodigonodepoli.herokuapp.com request_id=242ec2d6-18e3-431e-9635-f307681d8caf fwd="177.205.231.163" dyno=web.1 connect=0ms service=126ms status=200 bytes=1654 protocol=https
2017-05-06T22:45:37.680089+00:00 heroku[router]: at=info method=GET path="/socket.io/?EIO=3&transport=websocket&sid=RR98gYUd10guG3piAAAB" host=casadocodigonodepoli.herokuapp.com request_id=52460a88-4d70-4ccd-af02-6e70b80f9ca3 fwd="177.205.231.163" dyno=web.1 connect=0ms service=11190ms status=101 bytes=175 protocol=https
2017-05-06T22:46:03.908674+00:00 app[web.1]: events.js:160
2017-05-06T22:46:03.908685+00:00 app[web.1]:       throw er; // Unhandled 'error' event
2017-05-06T22:46:03.908687+00:00 app[web.1]:
2017-05-06T22:46:03.908688+00:00 app[web.1]: Error: Quit inactivity timeout
2017-05-06T22:46:03.908689+00:00 app[web.1]:     at Quit.<anonymous> (/app/node_modules/mysql/lib/protocol/Protocol.js:160:17)
2017-05-06T22:46:03.908686+00:00 app[web.1]:       ^
2017-05-06T22:46:03.908690+00:00 app[web.1]:     at emitNone (events.js:86:13)
2017-05-06T22:46:03.908690+00:00 app[web.1]:     at Quit.emit (events.js:185:7)
2017-05-06T22:46:03.908691+00:00 app[web.1]:     at Quit._onTimeout (/app/node_modules/mysql/lib/protocol/sequences/Sequence.js:127:8)
2017-05-06T22:46:03.908692+00:00 app[web.1]:     at ontimeout (timers.js:365:14)
2017-05-06T22:46:03.908692+00:00 app[web.1]:     at tryOnTimeout (timers.js:237:5)
2017-05-06T22:46:03.908693+00:00 app[web.1]:     at Timer.listOnTimeout (timers.js:207:5)
2017-05-06T22:46:03.917674+00:00 app[web.1]:
2017-05-06T22:46:03.926093+00:00 app[web.1]: npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start"
2017-05-06T22:46:03.926365+00:00 app[web.1]: npm ERR! node v7.2.0
2017-05-06T22:46:03.925768+00:00 app[web.1]: npm ERR! Linux 3.13.0-112-generic
2017-05-06T22:46:03.926583+00:00 app[web.1]: npm ERR! npm  v3.10.9
2017-05-06T22:46:03.926975+00:00 app[web.1]: npm ERR! casadocodigo@1.0.0 start: `node app`
2017-05-06T22:46:03.926783+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2017-05-06T22:46:03.927248+00:00 app[web.1]: npm ERR! Exit status 1
2017-05-06T22:46:03.927394+00:00 app[web.1]: npm ERR!
2017-05-06T22:46:03.927524+00:00 app[web.1]: npm ERR! Failed at the casadocodigo@1.0.0 start script 'node app'.
2017-05-06T22:46:03.927650+00:00 app[web.1]: npm ERR! Make sure you have the latest version of node.js and npm installed.
2017-05-06T22:46:03.927779+00:00 app[web.1]: npm ERR! If you do, this is most likely a problem with the casadocodigo package,
2017-05-06T22:46:03.927903+00:00 app[web.1]: npm ERR! not with npm itself.
2017-05-06T22:46:03.928528+00:00 app[web.1]: npm ERR!     npm bugs casadocodigo
2017-05-06T22:46:03.928375+00:00 app[web.1]: npm ERR! You can get information on how to open an issue for this project with:
2017-05-06T22:46:03.928682+00:00 app[web.1]: npm ERR! Or if that isn't available, you can get their info via:
2017-05-06T22:46:03.928830+00:00 app[web.1]: npm ERR!     npm owner ls casadocodigo
2017-05-06T22:46:03.928959+00:00 app[web.1]: npm ERR! There is likely additional logging output above.
2017-05-06T22:46:03.928042+00:00 app[web.1]: npm ERR! Tell the author that this fails on your system:
2017-05-06T22:46:03.928184+00:00 app[web.1]: npm ERR!     node app
2017-05-06T22:46:03.935596+00:00 app[web.1]:
2017-05-06T22:46:03.935800+00:00 app[web.1]: npm ERR! Please include the following file with any support request:
2017-05-06T22:46:03.935909+00:00 app[web.1]: npm ERR!     /app/npm-debug.log
2017-05-06T22:46:04.039485+00:00 heroku[web.1]: State changed from up to crashed
2017-05-06T22:46:04.026717+00:00 heroku[web.1]: Process exited with status 1
2017-05-06T22:46:16.906765+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/produtos/form" host=casadocodigonodepoli.herokuapp.com request_id=f3e314a4-1774-46e7-bf3e-388863106c7a fwd="177.205.231.163" dyno= connect= service= status=503 bytes= protocol=https
2017-05-06T22:46:18.451937+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/produtos/form" host=casadocodigonodepoli.herokuapp.com request_id=b7cf5e4a-846f-433b-8e97-ed4603984a20 fwd="177.205.231.163" dyno= connect= service= status=503 bytes= protocol=https
2017-05-06T22:47:47.793357+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/produtos/" host=casadocodigonodepoli.herokuapp.com request_id=b749368d-4d07-4fe2-bce2-d128192d2f03 fwd="177.205.231.163" dyno= connect= service= status=503 bytes= protocol=https

esse aqui ta estranho, é um erro do driver do mysql dizendo que a conexão ficou muito tempo aberta... para ser sincero, teria que rolar uma debugada mais forte no código para ver esse ponto.. de todo jeito eu não ficaria muito encanado, o código no heroku é apenas um teste para você ver como seria um deploy :).

Uma coisa que eu percebi é que a versão do node está mais atual que a do curso, então realmente pode ter havido algo com a atualização do driver.

eu estava tendo o mesmo problema, depois de pesquisar bastante descobri que, aparentemente, o problema é no próprio CLEARDB.

vi comentários de que ele não está processando o comando connection.end() corretamente, então a conexão fica aberta e acaba caindo por TIMEOUT.

resolvi o problema usando o JAWSDB, outro addon mysql disponível no heroku, também possui um plano gratuito e a configuração é basicamente a mesma, tive apenas que adaptar a REGEX para corresponder com a variável.

Tive esse mesmo problema e resolvi excluindo o arquivo Procfile não sei por qual motivo mas estava causando algum conflito