kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Hubot が定期的に落ちてしまう場合は hubot-slack を最新バージョンにすると良さそう

社内で育てている Slack 常駐用 Hubot が定期的に落ちてしまうという事象が前からあって,今までは検知したらすぐに起動するという運用回避で逃げていた.ちなみに forever を使ってデーモン化はしていて,具体的には以下のように起動している.実際には環境変数の export も多くしてるけど割愛する.

$ forever start -c coffee node_modules/hubot/bin/hubot -a slack

forever log

落ちた後の forever log を見ても,以下のように INFO しか出力されていなくて原因を特定できていなかった.forever のオプションで --debug--verbose を付けても,特に WARN 以上のログレベルでは出力されなかった.

$ cat Lzxa.log
[Fri Oct 21 2016 12:38:15 GMT+0900 (JST)] INFO Connecting...
[Fri Oct 21 2016 12:38:16 GMT+0900 (JST)] INFO Logged in as xxx_bot of xxx, but not yet connected
[Fri Oct 21 2016 12:38:17 GMT+0900 (JST)] INFO Slack client now connected
[Fri Oct 21 2016 12:38:18 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379
[Wed Oct 26 2016 09:14:05 GMT+0900 (JST)] INFO Slack client closed, waiting for reconnect

全く同じ事象を発見した

Slack client closed のログを情報源にして調べたところ hubot-slack に全く同じ事象が報告されているのを発見することができた.

github.com

コメントを見てみると package.json を修正して slackhq/hubot-slack#v3-sdk-updates を参照させれば直るはず!と書いてあった.

"hubot-slack": "slackhq/hubot-slack#v3-sdk-updates"

hubot-slack を最新にしてみた

CHANGELOG を見たら既に最新バージョンに修正が取り込まれていることがわかったので,今回は slackhq/hubot-slack#v3-sdk-updates ではなく最新 4.2.0 にしてみた.

"hubot-slack": "^4.2.0"

まとめ

今のところ,1週間稼働させて落ちなくなったため,改善されたように思う.

もし Hubot が謎に落ちてしまうことに悩んでいる人がいたら hubot-slack を最新バージョンにすると良さそう!