Архив от 26 июля, 2018

И еще один забавный случай про то, как мы наткнулись на баг, но теперь уже в самом memcached. Это даже, наверное, не баг, а особенность, не упомянутая в документации.

Всем известно, что у memcached есть текстовый протокол. Можно на tcp порт memcached (11211 по умолчанию) зайти телнетом и написать парочку команд. И есть в протоколе команда stats cachedump, которая не документирована, но которой пользуется утилита memcached-tool, входящая в поставку memcached.

Usage: memcached-tool <host[:port]> [mode]

(далее…)

В продолжении разговора о патче в php хочется еще рассказать о наших небольших патчах в pecl-memcached. Это pecl модуль, который реализует интерфейс libmemcached в php и добавляет handler сессий для хранения их в memcached.

Первый патч довольно простой, он добавляет нормальные сообщения об ошибках в код handler-а сессий. До этого патча невозможно было понять, то-ли сессии в мемкеше нет, то-ли отвалилась коннекция от мемкеша, то-ли что-то еще произошло. Во всех случаях код возвращал FAILURE и было непонятно, что на самом деле произошло. Аналогично, при сохранении сессии старый код просто увеличивал количество неудачных попыток и при достижении максимума выкидывал сервер из пула по непонятным снаружи причинам.
(далее…)