Derzeit im Test: Der GitHub-Code wird nach Abschluss veröffentlicht.

E · Fehler

Strukturrefresh

Antwort auf eine nicht verarbeitbare Anfrage. An Stelle des Keys steht reason. Der Key wird nicht zurückgegeben, daher lässt sich bei Pipelining aus dem Frame nicht erkennen, welche Anfrage fehlschlug. Deshalb ist jedes E connection-fatal. Der Server flusht E wenn möglich und schließt; offizielle Clients verwerfen ebenfalls die Session. Jeder Acquire, von dem mindestens ein Byte gesendet wurde, endet ohne definitive Antwort als Indeterminate, nie als angenommener Erfolg oder Fehlschlag.

reasonUrsacheVerbindung
auth_failedAuth-Handshake-Digest stimmt nicht übereingeschlossen
bad_opunbekannter op-Codegeschlossen
bad_requestfester Header zu kurz (10 Byte für A, 8 für R)geschlossen
bad_leaselease ist 0 oder 251..255geschlossen
bad_keySchlüssel fehlt / über 128B / enthält Leerraum oder Zeilenumbruch / nicht UTF-8geschlossen
line_too_longFrame über 192Bgeschlossen
no_leader(Cluster) Leader derzeit unbekannt — eine Wahl läuft; kurz erneut versuchengeschlossen
not_activeKnoten kann nicht bedienen — er fährt gerade heruntergeschlossen
  • Diese acht Gründe sind vollständig und schließen alle die Verbindung. Raw Clients dürfen sie diagnostizieren, aber den Stream nicht resynchronisieren oder wiederverwenden.
  • Offizielle Clients prüfen Key und Zeitbereiche vor dem Senden; bad_* ist kein normales API-Ergebnis.
  • no_leader und not_active sind temporär, aber E hat weder owner noch key. Session verwerfen; nur noch nicht gesendete Anfragen dürfen neu versucht werden. Einen gesendeten Acquire nie automatisch wiederholen.
  • M, L, no_leader und not_active gibt es nur im Cluster.
  • Volle Kapazität liefert B (busy), nicht E, weil owner und key zurückgegeben werden.

Byte-Notation: op ist ein ASCII-Zeichen, und reason ist ASCII-Text (variable Länge, in der Struktur als N dargestellt). Das abschließende \n ist 0A.

Ablauf

Client
Server
ungültiger Frame (z. B. >192B)
E · line_too_long
E flushen, dann Verbindung schließen
gesendeter Acquire bleibt Indeterminate
AnfrageAntwort

E liefert Diagnoseinformationen, erlaubt aber niemals sichere Stream-Wiederverwendung. Wiederherstellbare Kapazitätsablehnung nutzt B (busy) mit owner und key.