文字列でエラーになったと思ったら、全然別のところだった話
えー、なんかこう色々あったんですが、トラブル対応をしたときの話をメモしておきます。
修正5分、調査数時間という案件だった。
えー、なんかこう色々あったんですが、トラブル対応をしたときの話をメモしておきます。
・問い合わせ
パワポが出ない。
・プログラム
bashで書かれているけど、中はjsonにしたデータを渡してパワポを作っているpython。
・エラー内容と調査
なんか制御文字が入ってるから日本語データが化けて壊れたなどの感じに見える。
全体的にログデータもひきづられてぶっ壊れてる。
問題のデータを特定したけど、データは壊れてないように見える。
・データの受け渡し部
かなりトリッキーで、postgreSQLのデータをファイルに吐いて、
そのデータをoracleに突っ込んで、出力したデータをteeで標準出力とファイルに吐いて、
標準出力に出したものをjson型に整形してる(bashゴリゴリ)。
・エラー原因
日本語を出してる部分ではなく、データが空になる想定じゃない場所が空になっており、あちこちデータをやり取りしてる間にnull扱いになっていた。このnullが悪さをして日本語の部分がぶっ壊れていた。
・エラー対応
空データが入る部分をnvlでハイフン置換したら対応できた。
パワポが出ない。
・プログラム
bashで書かれているけど、中はjsonにしたデータを渡してパワポを作っているpython。
・エラー内容と調査
なんか制御文字が入ってるから日本語データが化けて壊れたなどの感じに見える。
全体的にログデータもひきづられてぶっ壊れてる。
問題のデータを特定したけど、データは壊れてないように見える。
・データの受け渡し部
かなりトリッキーで、postgreSQLのデータをファイルに吐いて、
そのデータをoracleに突っ込んで、出力したデータをteeで標準出力とファイルに吐いて、
標準出力に出したものをjson型に整形してる(bashゴリゴリ)。
・エラー原因
日本語を出してる部分ではなく、データが空になる想定じゃない場所が空になっており、あちこちデータをやり取りしてる間にnull扱いになっていた。このnullが悪さをして日本語の部分がぶっ壊れていた。
・エラー対応
空データが入る部分をnvlでハイフン置換したら対応できた。
修正5分、調査数時間という案件だった。
コメント