قيد الاختبار حاليًا: سيتم فتح كود GitHub عند الاكتمال.

E · خطأ

البنيةrefresh

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

السببالعلةالاتصال
auth_failedعدم تطابق ملخص مصافحة المصادقةمغلق
bad_opرمز op غير معروفمغلق
bad_requestfixed header أقصر من اللازم (10 bytes لـA و8 لـR)مغلق
bad_leaselease يساوي 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.