トップ(最新)

nDiki

2004年6月5日 (土)

[ WiKicker ] キャッシュまわりにバグ このエントリーを含むはてなブックマーク

Memcached まわりをいじったので、キャッシュ具合をテストしていたら変な現象が。 WikiPage が表示されるべきところに、検索結果が表示されている。 あれ?

@ ページの内容が表示されるところに検索結果が

WiKicker では WikiPage のレンダリング結果も検索結果もキャッシュしているが、それぞれ別のキャッシュキーになるようにしている (WiKickerのバージョンを $V とすると、'$V:h:ページ名' と '$V:s:検索語')ので混ざるはずがないんだけれどな。 キャッシュしているデータの形式も違うし。

最初は Memcached まわりのアップデートで不具合がでたのかと思ったが、戻しても変わらない。ということは、ずっと以前からこの問題が発生していたのか。 やば。 設定でニックネームを設定している(cookie に保存している)と、その Web ブラウザに対してはキャッシュ機能が働かないようになっているので発見が遅れてしまった。

で結局コードをチェックしてみたら「WikiPage 表示と検索結果表示の View クラスを同じにしていたため、検索結果のレンダリングが WikiPage レンダリング結果と同じ領域にキャッシュされる」という風になってしまっていた。 ということで誰かがページ名で検索するとそれがキャッシュされてしまい、ページを読もうとしてもキャッシュ破棄されるまで検索結果が表示されてしまうというひどい状況になっていたと。

修正。

@ キャッシュキーのバグ

Memcached の出力をチェックしていたら、たまにエラーが起きていることを確認。 Memcachedプロトコルをチェックしたら、キーには制御文字と空白は使えないとある。 Cache::Memcached を見たらキーはそのまま through するだけ。 ということでページ名に空白が含まれている場合などの時には、まずい事になっていたようだ。 こちらは、キーを自前でエンコーディング(ページデータベースファイル名の作成に使っている base64 の亜種)するように修正。

スポンサード リンク


[ 6月5日全て ]

Related term

■よく検索されるキーワード

torrent(114) ドラマ(32) thinkpad(30) x31(29) windows(28) perl(24) wiki(23) linux(22) 動画(21) 画像(16) usb(16) バッグ(16) ノート(15) debian(15) 壁紙(15) 書き方(13) 使い方(12) リフィル(12) 冷蔵庫(12) ほぼ日手帳(12) 修理(12) インストール(11) mp3(11) apache(11) dropbox(11) porter(11) 方眼(10) exzile(10) 作り方(10) 手帳(9) 提案書(9) a6(9) chrome(9) ダイソー(8) xorg(8) hdd(8) ヨドバシカメラ(8) 万年筆(8) ヨドバシ(8) tc-1(8) nikon(8) 古川小百合(8) 写真(8) スーベレーン(7) cvs(7) 無料(7) アレグラ(7) centos(7) google(7) アジェンダ(7) カメラ(7) 映画(7) 三条まゆみ(6) firefox(6) ibm(6) so905ics(6) うなぎ(6) 櫻井翔(6) 秋葉原(6) ダウンロード(6) 2ちゃんねる(6) 腕時計(6) truecrypt(6) 無料動画(6) gtd(6) minolta(6) スーツ(6) skype(5) 今江千佳(5) 無印(5) 時計(5) キーボード(5) シャープ(5) バッグインバッグ(5) 本名(5) ニューヨーカー(5) レビュー(5) fmアンテナ(5) subversion(5) 日本語(5)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 1.623708s / load averages: 0.13, 0.12, 0.09
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)