文字列でエラーになったと思ったら、全然別のところだった話

えー、なんかこう色々あったんですが、トラブル対応をしたときの話をメモしておきます。

・問い合わせ
パワポが出ない。

・プログラム
bashで書かれているけど、中はjsonにしたデータを渡してパワポを作っているpython。

・エラー内容と調査
なんか制御文字が入ってるから日本語データが化けて壊れたなどの感じに見える。
全体的にログデータもひきづられてぶっ壊れてる。
問題のデータを特定したけど、データは壊れてないように見える。

・データの受け渡し部
かなりトリッキーで、postgreSQLのデータをファイルに吐いて、
そのデータをoracleに突っ込んで、出力したデータをteeで標準出力とファイルに吐いて、
標準出力に出したものをjson型に整形してる(bashゴリゴリ)。

・エラー原因
日本語を出してる部分ではなく、データが空になる想定じゃない場所が空になっており、あちこちデータをやり取りしてる間にnull扱いになっていた。このnullが悪さをして日本語の部分がぶっ壊れていた。

・エラー対応
空データが入る部分をnvlでハイフン置換したら対応できた。


修正5分、調査数時間という案件だった。