Проблема с memcache на FreeBSD

Привет всем ;)
Столкнулся с проблемой на FreeBSD 6.3 с memcache 1.4.4.

Выскакивает ошибка
Notice: MemcachePool::delete() [memcachepool.delete]: Server localhost (tcp 11211, udp 0) failed with: CLIENT_ERROR bad command line format. Usage: delete <key> [noreply] (0) in /home/admin/data/www/сайт.ru/classes/lib/external/DklabCache/Zend/Cache/Backend/Memcached.php on line 190


В 190 строке Memcached.php это
public function remove($id)
    {
        return $this->_memcache->delete($id);
    }


В чем может быть проблема?

Заранее спасибо.

3 комментария

avatar
Уважаемые разработчики, может кто-то подскажет, что с этим делать?
Как я понял, то LS не дружит нормально с memcache.
Более ранняя версия memcache периодически выкидывала такую ошибку, после обновления до 1.4.4 она постоянно висит.
  • _et
  • 0
avatar
Натолкнулся на то же самое под Fedora 12 с memcache 1.4.5.
В общем, дело там в том, что до версии 1.4.0 был необязательный аргумент, указывающий мемкешу сохранить удаляемый объект в кеше после операции удаления таким образом, чтобы новые объекты с тем же именем не могли быть добавлены. Эта опция была полностью удалена в 1.4.0, но сделано это было неправильно, из-за чего выкидывались ошибки при попытке использовать эту опцию. В 1.4.3 это было исправлено, ошибки больше не выбрасывались, но и опция не работала. В 1.4.4 в целях обеспечения обратной совместимости мемкеш стал обрабатывать задание таймаута 0 (немедленное удаление), при котором всё работало так, как надо. Однако, в Zend_cache это было исправлено только 10 марта 2010 года.

Итого, если работает неправильно, то:
в строке 190 файла /classes/lib/external/DklabCache/Zend/Cache/Backend/Memcached.php
return $this->_memcache->delete($id);

меняем на
return $this->_memcache->delete($id, 0);

после чего проблема исчезает.
комментарий был удален
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.