E · Ошибка
Структураrefresh
Ответ на запрос, который нельзя обработать. Текст reason занимает место key. Key не возвращается, поэтому по frame нельзя понять, какой pipelined запрос ошибся. Поэтому каждый E — connection-fatal. Сервер по возможности flush E и закрывает соединение; официальные клиенты также отбрасывают session. Любой acquire, от которого отправлен хотя бы один byte без окончательного ответа, завершается как Indeterminate, а не предполагаемый успех или отказ.
| reason | Причина | Соединение |
|---|---|---|
auth_failed | несовпадение дайджеста аутентификационного хендшейка | закрыто |
bad_op | неизвестный код op | закрыто |
bad_request | слишком короткий fixed header (10 bytes для A, 8 для R) | закрыто |
bad_lease | lease равен 0 или 251..255 | закрыто |
bad_key | ключ отсутствует / превышает 128 Б / содержит пробел или перевод строки / не UTF-8 | закрыто |
line_too_long | кадр превышает 192 Б | закрыто |
no_leader | (кластер) текущий лидер неизвестен — идут выборы. Повторите попытку чуть позже | закрыто |
not_active | узел завершает работу и не может обслуживать запросы | закрыто |
- Эти восемь причин — полный список, и каждая закрывает соединение. Raw client может использовать их для диагностики, но не должен ресинхронизировать и повторно использовать stream.
- Официальные клиенты проверяют key и время до отправки;
bad_*не является обычным API-результатом. no_leaderиnot_activeвременны, но вEнет owner/key. Отбросьте session; в новом соединении можно пробовать лишь неотправленные запросы. Никогда автоматически не повторяйте отправленный acquire.M,L,no_leaderиnot_activeбывают только в cluster.- Переполнение capacity возвращает
B(busy), а неE, поскольку echo owner и key.
Обозначение байтов:
op— символ ASCII,reason— текст ASCII (переменной длины,Nв структуре). Завершающий\n— это0A.
Поток
Клиент
Сервер
неверный frame (например, >192B)
E · line_too_long
flush E, затем закрытие
отправленный acquire остаётся Indeterminate
запросответ
E даёт диагностическую информацию, но не разрешает безопасное повторное использование stream. Для восстанавливаемого отказа capacity служит B (busy) с owner и key.