history

青木日記 RSS

<前の日 | この月 | 次の日>

2003-03-20

先端追従

Ruby 2003-03-20 + tDiary 2003-03-19 にバージョンアップしてみた。 あ、いちおう家庭内サーバの Solaris で実験はしましたよ? さすがの俺でもいきなりバージョンを上げるほど無防備じゃないですとも。 そのわりにいきなりプラグインを大量追加したりしてるのは無防備ですが。

まずは tdiary.rb にて sort の例外が発生。 これはこないだなんかやってたな。 compact を入れまくって逃げを打つ。

ぐおっ、ハングした。 ps ax で見ると、ruby プロセスがずっと残ってしまっている。 どうやら DATADIR/2003/200303.td2 が壊れてた模様。 末尾に変なのが付いてた。なんかヤバい感じだなー。大丈夫だろうか。

しかも化けてるし。やっぱりいきなりメールで更新するのはよくなかったな。 まずは CGI で更新してみよう。

文字化けの原因は [ruby-dev:19864] に書いた sprintf だった。 URL エンコードで sprintf を使っているために \n が %FA になり、 デコードすると化け化けになるという理屈。やっぱりいきなり HEAD は危ないね。

問題はまだ続く

2002 年 12 月のページを見るとなぜか latest になる問題が発生。

……もしかして適当に compact しまくったのが問題ですか?

本当に謎

違ったよ〜。compact を全部消しても変わんない。 そもそもエラーになってたのはデータベースが壊れてたのが原因で、 compact は必要なかったようだ。

うー、ちゃんと読まなきゃだめか?

二転三転

あー、違う。やっぱり compact は必要だった (別のところで)。 00default.rb:117 の sort! で落ちる。これで 12 月も日毎は見られるようになった。

しかしまだ 2002 年 12 月が見られない。どうしてなんだ……。 12 月ということは何か時差が関係してるのだろうか。

原因判明

関係ないどころじゃないよ……。sort でエラーが起きて それが偶然 rescue されてて TDiaryError に変換されて それが latest にフォールバックされてたのが原因だった。 とりあえず全部

@diaries.keys.sort → @diaries.keys.compact.sort

で解決。

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS