@repeatedly @sonots @tagomoris fluentdが終了しないときがある問題ですが、ここのところの例外処理あやしくないですかね? https://t.co/ywBBH7HKqm https://t.co/eo2hRAS0fN
2013-10-03 16:34:45@repeatedly @sonots @tagomoris 正しく終了しなかったケースって、out_exec_filterかin_exec使ってました?使っていたとしたら、先のコードで各種例外をrescueするようにしないと、shutdownが例外吐いてしまってマズい疑惑です。
2013-10-03 16:36:17@frsyuki @repeatedly @sonots なるほど。out_exec_filter 使ってました。それかもですね。
2013-10-03 16:37:52@repeatedly @sonots @tagomoris 確かErrno::ESRCHの他にErrno::ECHILDが発生する可能性があって、それ考慮すると実はErrno::EPERMとか色々と発生する可能性があるはず。結局全部rescueしないとマズい
2013-10-03 16:38:49@frsyuki @repeatedly @tagomoris うーん、自分は out_exec_filter 使ってないですね ...
2013-10-03 16:38:58@frsyuki @repeatedly @tagomoris あー、なるほど。ここかもしれないですねー。
2013-10-03 16:41:58@repeatedly ログが出ない原因は正直よくわかんなくて、ロガーがどっかで死亡してるかどこかで無限ループしてるかだろうとは思うけど、ちゃんと調べてないす
2013-10-03 17:01:34@repeatedly @tagomoris @sonots よく考えたらこのtrap直下の$logはロガーがemitするので例外を吐く可能性があるのでは。特にshutdown中でoutputが既に閉じていると起こる。https://t.co/QzH9hKb8nq
2013-10-03 17:03:06@repeatedly @tagomoris @sonots ここで例外になるとログも何も出ない。ロガーが例外を吐くと結構ヤバイ感じがあるので、Log#warnとかには全部rescueを入れた方が良いとか https://t.co/pkAtM1rZXL
2013-10-03 17:04:25@frsyuki @sonots @tagomoris それadhocな対応だけど,shutdownシーケンスとかの流れを整理したほうがいい気も?emitしないログとか吐けるんだっけ?
2013-10-03 17:08:28@repeatedly @frsyuki @sonots emitしないログはスレッド側からセットできる Log#disable_events(threads) ので、Engine#shutdown でThreadを起動したらまずこれをセットすればいいんでは
2013-10-03 17:09:56@tagomoris @repeatedly @sonots シグナルハンドラは他のスレッドの処理に割り込んで動くので、ハンドラ内でdisableしたらハンドラ終了後にどこかのスレッドでeventが出てこなくなるのと、trap直下にあるロギングは#shutdownに到達前に走るす
2013-10-03 17:11:49問題点は大きく二つ? 1: exec系でshutdown時のSignal周りの例外処理が足りないんじゃないか疑惑.一通り関連キャッチすべき 2: shutdown時のログ周りで例外起きた時のハンドリングが甘いかも
2013-10-03 17:13:59@repeatedly exec系の問題はSignal関係なく、子プロセスの処理まわりで起きる例外が多数想定されるので全部rescueして捨てていいんじゃねという話かな
2013-10-03 17:15:23@repeatedly そうです。必ず特定のスレッドにシグナルハンドラを実行させるために、一旦キューに積む処理がある。あとそのスレッドは全例外を勝手にrescueしてログはいて無視する。
2013-10-03 17:16:23@tagomoris @repeatedly たしかに。とりあえず怪しげな箇所にrescueを仕込む対応で良いのでは
2013-10-03 17:18:021の解決策: Process.killしている所のrescueでESRCH以外もキャッチするようにする, 2の解決策: シグナルハンドラ用のスレッド作るのは面倒なので,とるあえず終了時のログの例外はにぎりつぶす, くらいかな?
2013-10-03 17:21:47