2003/05/06(火) [n年前の日記]
#3 [pc][prog] zeus.cgiのファイル公開チェック処理に異常はないように見える
zeus.cgiを追いかけ中。
◎ ログに記録された時間のみを元にして公開期限関連を判断している :
ファイル公開の終了・一時停止中・公開可能については、ログに記録された時間情報のみを元に判断してるようにしか見えない。ファイルのタイムスタンプ参照の可能性を考えていたが、そういった処理は見受けられず。しかも、「現在の time - スレッド作成時の time」、つまりは時間の差分のみで各種判断をしているので、海外サーバのローカルタイムが日本時間とどれだけズレていても動作には何ら問題は出ない。せいぜい、スレッド表示をする際の日付情報
*1
が日本時間とズレるだけだ。
◎ 問題が起こるとすれば :
問題が起こるとすれば、日本のサーバ上で記録したログを、海外のサーバにそのまま持っていった時ぐらいだろう。未来の時間で立てられたスレッドに対しては、時間の差分が本来あり得ないはずのマイナス値になるので、必然的に各種時間計算・大小関係による分岐が狂う。ただ、それも数日経ってしまえば、現在時間が確実にスレッド作成時間を追い越すので、不具合は消滅してしまうはず。
◎ ログが壊れてるとか :
もしかすると、ログが壊れてる可能性はないか。前述のとおり、未来に立てられたスレッドに対しては正常な条件判断が出来ない。スレッド作成時間のみが異常値になっているだけで、公開期限関連の判断処理は狂ってしまう。しかし、そのように特定情報だけが壊れてしまう場面などどれだけあるだろうか。
◎ ログを壊しているのでは :
もしかすると、本来書きこむべき値が一つずつズレてしまってる可能性はないか。特定処理を通った時のみ、別のログ記録サブルーチンが呼ばれてしまうとか。であれば、ログを検証すれば何かわかりそうだ。いや、そもそも異常な動作をした時点で、即座にログを検証しておけば良かったような気も。ちと失敗。
*2
…特定処理? …そうか、すっかり失念してた。編集時の処理か。そもそも編集時に不具合が出るという話だったし。そこで異常値が書きこまれてしまうのでは。…さて、編集時の処理って、どこでされているのだろう。ソースを追いかけないと。
[ ツッコむ ]
以上です。