Actuellement en test : le code GitHub sera ouvert une fois terminé.

E · Erreur

Structurerefresh

Réponse à une requête impossible à traiter. Le texte reason remplace la clé. La clé n'est pas renvoyée, donc une trame seule ne permet pas d'identifier la requête en pipeline qui a échoué. Tous les E sont donc connection-fatal. Le serveur flush E si possible puis ferme ; les clients officiels abandonnent aussi la session. Tout acquire dont au moins un octet a été envoyé sans réponse définitive se termine par Indeterminate, jamais par un succès ou échec supposé.

reasoncauseconnexion
auth_failedincohérence du condensé de la poignée de main d'authentificationfermée
bad_opcode d'op inconnufermée
bad_requesten-tête fixe trop court (10 octets pour A, 8 pour R)fermée
bad_leaselease vaut 0 ou 251..255fermée
bad_keyclé absente / dépasse 128o / contient un espace ou un retour à la ligne / pas en UTF-8fermée
line_too_longtrame dépasse 192ofermée
no_leader(cluster) leader actuellement inconnu — une élection est en cours ; réessayez sous peufermée
not_activele nœud ne peut pas servir — il est en cours d'arrêtfermée
  • Ces huit raisons forment la liste complète et ferment toutes la connexion. Un client raw peut les diagnostiquer, mais ne doit pas resynchroniser ni réutiliser le stream.
  • Les clients officiels valident clé et durées avant envoi ; bad_* n'est donc pas un résultat API normal.
  • no_leader et not_active sont temporaires, mais E ne contient ni owner ni key. Abandonnez la session ; seules les requêtes non envoyées peuvent être tentées ailleurs. Ne retransmettez jamais automatiquement un acquire envoyé.
  • M, L, no_leader et not_active n'existent qu'en cluster.
  • Une capacité saturée renvoie B (occupé), pas E, car owner et key sont renvoyés.

Notation des octets : op est un caractère ASCII, et reason est du texte ASCII (longueur variable, notée N dans la structure). Le \n final est 0A.

Flux

Client
Serveur
trame invalide (p. ex. >192B)
E · line_too_long
flush de E puis fermeture
tout acquire envoyé reste Indeterminate
requêteréponse

E fournit un diagnostic mais n'autorise jamais la réutilisation sûre du stream. Un refus de capacité récupérable utilise B (occupé), qui renvoie owner et key.