# 今日も二連投・・・。しかも仕事ネタ。
システムも運用フェーズに入り、バージョンアップを重ねると、単純なバグはほぼ出なくなります。
ということは、残ってるのはレアでやっかいなバグばかり・・・。解析に時間も掛かります。
で、この間ヤラれたのが、このStackOverflowErrorの問題。
最初に障害が発生したときには、ログにおかしなスタックトレースが出て、再現性も特定できなかったので解析不能でした。
その後、ある時、100%再現するケースを見つけたので、デバッグコメントをガンガン入れてやってみたら、どうもXMLParserのparseでコケてることが判明。
なので、その行をピンポイントでtryーcatch(Exception e)で括ってみたら、あれ?引っかからない!何で?
・・・で、試しにExceptionの親であるThrowableでcatchしたら、やっと取れた!
中を見ると、StackOverflowErrorだったんです。
どうやら、XMLをパースする際にスタックサイズが足りなくなったらしいです。
(なので、スタックトレース自体も壊れてて変なのが出てた?(これは不明))
ということで、jvmのスタックサイズを増やして(-Xssオプション)解決。
それにしても、xxxErrorって”catch Exception”じゃ拾えないんですね。知りませんでした。
ログから追えない障害って、ほんとツラいです。