2014年9月10日水曜日

memcachedのdeleteの第2引数が削除されたバージョンを調べる


このエントリーをはてなブックマークに追加
某サービスが延々と警告を吐いてるので確認すると、
Cache::Memcached::Fastが「non-zero delete expiration time is ignored」を出力していた。

ある時点まではdeleteの際にdelay時間を設定できていたが、今は無くなっている。

どのバージョンから?

githubのmemcachedのプロジェクトを見ると、protocol.txtがあり、ここに記述があった。
    $ git log -p 5da8dbab2a815c00617ab60b641391ada8d96f40 protocol.txt
    $ git name-rev 5da8dbab2a815c00617ab60b641391ada8d96f40
    > 5da8dbab2a815c00617ab60b641391ada8d96f40 tags/1.3.2~164
1.3.2からでした。

使ってるmemcachedのバージョンを確認する

    $ memcached -h | head -1

余談

Sledge::Session::Memcachedの_delete_meがこんな実装になってたら注意。
sub _delete_me {
    my $self = shift;
    $self->{_dbh}->delete($self->{_sid}, $self->{_data});  #秒数入れる第2引数にハッシュリファレンスいれてる
}
プロトコルが何回か変わったのかもしれませんが、$self->session->expireがまったく効いてませんでした。

0 件のコメント:

コメントを投稿