2010年03月28日
● エラー処理の原因
とりあえず目に見える形で成果を出せたので、今日は早めに帰宅することができた。それにしても、何とも奇妙な不具合だった。大まかな流れは次のような感じ。
- なんか問題が起きている(これが本来解消すべき問題)。
- 上の問題をログに出力する処理が走る。
- ログ出力の中で必要なものがないという問題が起きる。
- やっぱりその問題をログに出力する処理が走る。
- やっぱりログ出力の中で必要なものがないという問題が起きる。
- やっぱり……(以下繰り返し)
- 最終的にスタックオーバーフローを起こす。
解消すべき問題点が見えていなくて、ログ出力側の問題点はどこにあるのか、っていうのをずーっと探していた。で、これが実はJavaのVMの初期化処理で起きていて、VMの中身をずっと追いかけていた。今日になって、手詰まりな感じがあったので仕方なくJavaのコードを追いかけたら、ログ出力に問題があることを気づき、Javaのソースを修正することでその問題を解決できることに気づいたのが今日の成果。提案した解決策も予想通りの動きをしているし。しかし、こういう問題って他では起きていないのか?っていうのが疑問。まー、きちんと俯瞰した上での実装ではないのが問題なんだろうね。
[ツッコミを入れる]