Приложение Python, размещенное на Heroku, внезапно перестает работать (код ошибки H10) - PullRequest
0 голосов
/ 23 февраля 2020
2020-02-21T04:40:16.085005+00:00 app[web.1]: [2020-02-21 04:40:16 +0000] [4] [INFO] Using worker: sync
2020-02-21T04:40:16.090866+00:00 app[web.1]: [2020-02-21 04:40:16 +0000] [14] [INFO] Booting worker with pid: 14
2020-02-21T04:40:16.169291+00:00 app[web.1]: [2020-02-21 04:40:16 +0000] [22] [INFO] Booting worker with pid: 22
2020-02-21T04:40:16.285550+00:00 app[web.1]: [2020-02-21 04:40:16 +0000] [30] [INFO] Booting worker with pid: 30
2020-02-21T04:40:16.885772+00:00 app[web.1]: /app/.heroku/vendor/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py:835: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
2020-02-21T04:40:16.885794+00:00 app[web.1]: 'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
2020-02-21T04:40:16.991873+00:00 app[web.1]: /app/.heroku/vendor/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py:835: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
2020-02-21T04:40:16.991877+00:00 app[web.1]: 'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
2020-02-21T04:40:17.098026+00:00 app[web.1]: /app/.heroku/vendor/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py:835: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
2020-02-21T04:40:17.098028+00:00 app[web.1]: 'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
2020-02-21T04:40:17.810758+00:00 heroku[router]: at=info method=GET path="/" host=overwatchperfectflex.herokuapp.com request_id=c9bde3ed-25fd-418c-a289-79185c729281 fwd="40.94.36.55" dyno=web.1 connect=1ms service=18ms status=200 bytes=3793 protocol=https
2020-02-21T04:40:18.001787+00:00 heroku[router]: at=info method=GET path="/static/index.js?h=1575409895" host=overwatchperfectflex.herokuapp.com request_id=3741ce43-7f21-4bca-9cba-c65e4b899de4 fwd="40.94.36.55" dyno=web.1 connect=0ms service=10ms status=200 bytes=4656 protocol=https
2020-02-21T04:40:17.950826+00:00 heroku[router]: at=info method=GET path="/static/style.css?h=1575409895" host=overwatchperfectflex.herokuapp.com request_id=b39fca0f-0c36-471b-8e9f-356052939856 fwd="40.94.36.55" dyno=web.1 connect=0ms service=9ms status=200 bytes=5526 protocol=https
2020-02-21T04:40:18.115039+00:00 heroku[router]: at=info method=GET path="/static/sample-screenshot.jpg?h=1575409895" host=overwatchperfectflex.herokuapp.com request_id=f2ebea0f-d94a-48b6-ab07-1e6176ea1803 fwd="40.94.36.55" dyno=web.1 connect=0ms service=12ms status=200 bytes=194538 protocol=https
2020-02-21T04:40:18.128110+00:00 heroku[router]: at=info method=GET path="/static/sample-cards-screen.jpg?h=1575409895" host=overwatchperfectflex.herokuapp.com request_id=f187f422-58fa-4c5c-bc8c-5a381b8fc0b6 fwd="40.94.36.89" dyno=web.1 connect=1ms service=14ms status=200 bytes=156857 protocol=https
2020-02-21T04:40:18.204377+00:00 heroku[router]: at=info method=GET path="/static/sample-screenshot2.jpg?h=1575409895" host=overwatchperfectflex.herokuapp.com request_id=a21db7e3-aa67-4b38-aec2-255e603592cf fwd="40.94.36.97" dyno=web.1 connect=1ms service=18ms status=200 bytes=362587 protocol=https
2020-02-21T04:40:18.257411+00:00 heroku[router]: at=info method=GET path="/" host=overwatchperfectflex.herokuapp.com request_id=a7420d52-8572-40d5-9234-2a12c90b3ab1 fwd="40.94.96.47" dyno=web.1 connect=0ms service=3ms status=200 bytes=3793 protocol=https
2020-02-21T04:40:18.554730+00:00 heroku[router]: at=info method=GET path="/static/index.js?h=1575409895" host=overwatchperfectflex.herokuapp.com request_id=ff63c23b-ee06-4fc5-b2d1-a3bc2bb1bcb8 fwd="40.94.96.47" dyno=web.1 connect=0ms service=3ms status=200 bytes=4656 protocol=https
2020-02-21T04:40:18.441184+00:00 heroku[router]: at=info method=GET path="/static/style.css?h=1575409895" host=overwatchperfectflex.herokuapp.com request_id=31d0bdc2-3a4a-470f-b077-769452833050 fwd="40.94.96.47" dyno=web.1 connect=1ms service=3ms status=200 bytes=5526 protocol=https
2020-02-21T04:40:18.730303+00:00 heroku[router]: at=info method=GET path="/static/sample-cards-screen.jpg?h=1575409895" host=overwatchperfectflex.herokuapp.com request_id=15a50040-049a-4aeb-b61e-cc0f50fbc173 fwd="40.94.96.88" dyno=web.1 connect=1ms service=14ms status=200 bytes=156857 protocol=https
2020-02-21T04:40:18.722330+00:00 heroku[router]: at=info method=GET path="/static/sample-screenshot.jpg?h=1575409895" host=overwatchperfectflex.herokuapp.com request_id=b66d1329-4ddd-476c-b8c5-fbca4817ce18 fwd="40.94.96.47" dyno=web.1 connect=0ms service=14ms status=200 bytes=194538 protocol=https
2020-02-21T04:40:18.952974+00:00 heroku[router]: at=info method=GET path="/static/sample-screenshot2.jpg?h=1575409895" host=overwatchperfectflex.herokuapp.com request_id=a4798112-a7f5-4ab7-b42e-747efa851bb9 fwd="40.94.96.98" dyno=web.1 connect=0ms service=17ms status=200 bytes=362587 protocol=https
2020-02-21T04:40:20.591308+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=overwatchperfectflex.herokuapp.com request_id=efa578d0-bf07-4915-a038-77b65598387c fwd="40.94.36.97" dyno=web.1 connect=1ms service=2ms status=404 bytes=386 protocol=https
2020-02-21T04:40:21.658366+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=overwatchperfectflex.herokuapp.com request_id=559223ab-da65-439d-b716-246b656d3eaf fwd="40.94.96.98" dyno=web.1 connect=0ms service=5ms status=404 bytes=386 protocol=https
2020-02-21T05:16:18.730746+00:00 heroku[web.1]: Idling
2020-02-21T05:16:18.734547+00:00 heroku[web.1]: State changed from up to down
2020-02-21T05:16:19.783524+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2020-02-21T05:16:19.801722+00:00 app[web.1]: [2020-02-21 05:16:19 +0000] [4] [INFO] Handling signal: term
2020-02-21T05:16:19.802039+00:00 app[web.1]: [2020-02-21 05:16:19 +0000] [30] [INFO] Worker exiting (pid: 30)
2020-02-21T05:16:19.802390+00:00 app[web.1]: [2020-02-21 05:16:19 +0000] [22] [INFO] Worker exiting (pid: 22)
2020-02-21T05:16:19.809300+00:00 app[web.1]: [2020-02-21 05:16:19 +0000] [14] [INFO] Worker exiting (pid: 14)
2020-02-21T05:16:19.935558+00:00 app[web.1]: [2020-02-21 05:16:19 +0000] [4] [INFO] Shutting down: Master
2020-02-21T05:16:20.000313+00:00 heroku[web.1]: Process exited with status 0
2020-02-21T17:24:37.126304+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=overwatchperfectflex.herokuapp.com request_id=21677fce-34ce-4437-94ce-31692db20bce fwd="66.249.84.169,66.102.6.200" dyno= connect= service= status=503 bytes= protocol=https
2020-02-21T17:24:52.887916+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=overwatchperfectflex.herokuapp.com request_id=cbbfe77c-8cf4-4b72-a0e2-865e644bfaa3 fwd="66.201.50.243,66.102.6.201" dyno= connect= service= status=503 bytes= protocol=http

После нескольких месяцев, пока мое приложение размещалось на heroku, оно просто случайным образом закрывалось пару дней go. Я не делал никаких недавних изменений в кодовой базе. Я приложил, что я считаю соответствующие журналы, касающиеся этой проблемы. Я провел свое исследование, и, очевидно, heroku автоматически делает это, если ваше приложение не получает достаточного количества трафика c, но я считаю, что это неверно, поскольку мои предыдущие проекты, размещенные на Heroku, все еще работают нормально.

* Мое приложение отлично работает, если оно размещено локально.

1 Ответ

0 голосов
/ 26 февраля 2020

1-й:

heroku [роутер]: at = код ошибки = H10 desc = "Приложение упало"

Из Heroku Код ошибки docs , H10 означает «Сбой приложения»:

Сбой веб-динамо или тайм-аут при загрузке на веб-динамо представит эту ошибку.

2010-10-06T21:51:09-07:00 app[web.1]: >> Using rails adapter  
2010-10-06T21:51:09-07:00 app[web.1]: Missing the Rails 2.3.5 gem.  
Please `gem install -v=2.3.5 rails`, update your RAILS_GEM_VERSION  
setting in config/environment.rb for the Rails version you do have  
installed, or comment out RAILS_GEM_VERSION to use the latest version  
installed. 
2010-10-06T21:51:10-07:00 heroku[web.1]: Process exited  
2010-10-06T21:51:12-07:00 heroku[router]: at=error code=H10 desc="App  
crashed" method=GET path="/" host=myapp.herokuapp.com fwd=17.17.17.17
dyno= connect= service= status=503 bytes= 

2-й:

Похоже, вы используете бесплатный динамо, который засыпает после 30-минутного периода бездействия .

2020-02-21T04:40:21.658366+00:00 heroku[router] ... (last access) ...  
2020-02-21T05:16:18.730746+00:00 heroku[web.1]: Idling  
2020-02-21T05:16:18.734547+00:00 heroku[web.1]: State changed from up to down  
2020-02-21T05:16:19.783524+00:00 heroku[web.1]: Stopping all processes with SIGTERM

Вы ничего не можете с этим поделать, кроме покупки не спящих динамов. Когда dyno переходит в спящий режим, он останавливает все процессы, запущенные на этом dyno, включая ваше приложение.

2020-02-21T05:16:19.783524+00:00 heroku[web.1]: Stopping all processes with SIGTERM 
2020-02-21T05:16:19.801722+00:00 app[web.1]: [2020-02-21 05:16:19 +0000] [4] [INFO] Handling signal: term  
2020-02-21T05:16:19.802039+00:00 app[web.1]: [2020-02-21 05:16:19 +0000] [30] [INFO] Worker exiting (pid: 30) 
2020-02-21T05:16:19.802390+00:00 app[web.1]: [2020-02-21 05:16:19 +0000] [22] [INFO] Worker exiting (pid: 22)  
2020-02-21T05:16:19.809300+00:00 app[web.1]: [2020-02-21 05:16:19 +0000] [14] [INFO] Worker exiting (pid: 14)  
2020-02-21T05:16:19.935558+00:00 app[web.1]: [2020-02-21 05:16:19 +0000] [4] [INFO] Shutting down: Master  
2020-02-21T05:16:20.000313+00:00 heroku[web.1]: Process exited with status 0 

Теперь, когда Heroku отправил сигнал SIGTERM в ваше приложение, что-то произошло во время между ненормальным завершением (SIGTERM) и перезапуском приложения, которое вызвало его к краю sh. Возможно, вашему приложению не удалось обработать не очень изящный выход (например, файловый ввод-вывод, соединение с БД не закрыто), поэтому при перезапуске из ненормального состояния оно привело к sh.

2020-02-21T17:24:37.126304+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=overwatchperfectflex.herokuapp.com request_id=21677fce-34ce-4437-94ce-31692db20bce fwd="66.249.84.169,66.102.6.200" dyno= connect= service= status=503 bytes= protocol=https 

Итак ...

* Мое приложение отлично работает, если оно размещено локально.

Отлично.

Может быть, вам нужно также проверить, что происходит, когда ваше приложение аварийно завершается. Запустите его локально, затем отправьте тот же сигнал SIGTERM. Получите PID вашего приложения, затем посмотрите Как я могу отправить сигнал из программы python? .

...