Мы пытаемся использовать Memcached (1.5.22) в качестве обработчика сеанса на сервере с Apache + PHP 7.4, однако мы наблюдаем случайные ошибки с сообщением ниже:
session_start(): не удалось прочитать данные сеанса: пользователь (путь: XX.XX.X.XX:11211)
Приложение выполняет запросы AJAX, примерно 25 запросов в секунду, из этих 25 запросов лишь немногие представляют ошибку.
Из-за этого мы решили посмотреть журнал ошибок Memcached и заметили, что при возникновении этой ошибки Memcached возвращает 3-кратную ошибку в журнале, как показано ниже:
238593: 12 мая, 14:09:45 memcached-01 systemd-memcached-wrapper[436]: <32 ADD da_session:b2ZnDAkIZ15vpbhrHHkxoZesSSC6Lgi5:lock Значение len равно 10
238594-12 мая 14:09:45 memcached-01 systemd-memcached-wrapper[436]: >32 Ошибка записи: для ключа существуют данные.
--
238608-12 мая 14:09:45 memcached-01 systemd-memcached-wrapper[436]: <32 0x00 0x00 0x00 0x00
238609: 12 мая, 14:09:45 memcached-01 systemd-memcached-wrapper[436]: <32 ADD da_session:b2ZnDAkIZ15vpbhrHHkxoZesSSC6Lgi5:lock Значение len равно 10
238610-12 мая 14:09:45 memcached-01 systemd-memcached-wrapper[436]: >32 Ошибка записи: существуют данные для ключа.
--
238624-12 мая 14:09:45 memcached-01 systemd-memcached-wrapper[436]: <32 0x00 0x00 0x00 0x00
238625: 12 мая, 14:09:45 memcached-01 systemd-memcached-wrapper[436]: <32 ADD da_session:b2ZnDAkIZ15vpbhrHHkxoZesSSC6Lgi5:lock Значение len равно 10
238626-12 мая 14:09:45 memcached-01 systemd-memcached-wrapper[436]: >32 Ошибка записи: существуют данные для ключа.
Мы уже пытались увеличить memcached.sess_lock_retries
до 50, отключить memcached.sess_locking
, и ошибка всегда происходит.
memcached.sess_lock_retries 50
memcached.sess_lock_wait не установлен
memcached.sess_lock_wait_max 2000
memcached.sess_lock_wait_min 150
Что может происходить?