近頃版/another blog@hatena/Wiki/BBS
< 仕事:あまりにも自由な | 仕事:あまりにも自由な続き >
そろそろ仕事をしようか、という気分になったあたりで「パッケージを貰ったアプリの動きがなんだかおかしい」という連絡がお客さまから。
開発用の環境ではそんな症状が出ないのだが、リリース前テスト用の環境では確かに動きがおかしい。両者の違いはサーバが違うことぐらいじゃないか?とか悩みつつともかくも調査開始。
なにしろ相手がサイズ制限も厳しいiアプリ様なので、リリース前テスト版はデバッグプリントすら切り捨ててある。Javaのくせにろくなスタックトレースも吐かないし。そんなわけでビルド環境でちまちまとデバッグプリントを書いてはリリース前テスト版のコンフィグでビルド、作ったバイナリ(?)をエミュレーターで動かして確認、というのをやって問題の箇所を追い込んで行く。
2時間ほどかけて行きついたのは「必要なリソース定義が消えている」という結論。起動時に読みこんで基本的には消さないデータなのに?と思って起動時の読みこみ処理にデバッグプリントを入れると――その項目のリソース定義がそもそも行われていない。
ひょっとしてビルド用のコンフィグが間違っていてリソース定義ファイルのダウンロード先を間違えたか、とパケットキャプチャで調べてみる。うん、アクセス先のURLは間違ってない。
_……アクセス先は、間違っていない。
そのアクセス先にwgetしてみる。ファイルが落ちてくる。落ちたファイルの日付を見る。先月の日付。
もしもし。そのリソース定義ファイルはひょっとして以前のリリースで渡したものじゃございませんか? 定義ファイルを開いてみると見事問題のデータの定義がない。そういやこのバージョンで動作に問題があってその解消のために追加したデータだったなあ。
_よけいなことを書くと罵倒になりそうだったので極めて事務的に、「このURLに置いてある定義ファイルを最新版にしてください」というメールを書いて送る。更新したと報告がある。動作を確かめる。動く。
_とりあえず教訓。ものごとは単純なところから疑おう。
もっとも、経験しなけりゃ思い付けない教訓ってのもある。