E · خطأ
البنيةrefresh
استجابة لطلب لا يمكن معالجته. يأتي نص reason بدل الـkey. لا يُعاد echo للـkey، لذلك لا يحدد frame وحده أي طلب pipelined فشل. لذا كل E هو connection-fatal. يعمل الخادم flush لـE إن أمكن ثم يغلق، وتتخلص العملاء الرسمية من session أيضًا. أي acquire أُرسل منه بايت واحد بلا استجابة نهائية ينتهي Indeterminate، لا نجاحًا أو فشلًا مفترضًا.
| السبب | العلة | الاتصال |
|---|---|---|
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 التشخيص، لكن لا يجوز resynchronize أو reuse للـ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.