دراسة حالة 07

تشخيص الأعطال وهندسة الأداء

تم التحقق من كل إصلاح
تشخيص الأعطال وهندسة الأداء — ملخص مرئي (بالإنجليزية)

الملخص المرئي بالإنجليزية؛ والنص الكامل بالعربية أدناه.

منهجيتي

  1. إعادة إنتاج المشكلة: التقاط رسالة الخطأ (Traceback) كما هي.
  2. القياس: الاستعلام عن البيانات الحقيقية بـ SQL.
  3. العزل: تحديد ما إذا كان السبب في الكود أم البيانات أم الإعدادات.
  4. الإصلاح: أصغر تعديل صحيح ممكن.
  5. الحماية: إضافة اختبار يمنع عودة المشكلة.

الحالات

العَرَضالدليل والسبب الجذريالإصلاحتم التحقق
تعطّل لوحة متابعة المناديب بخطأ RPCبدت المشكلة في البيانات، لكن فحص SQL أعاد صفر سجلات خاطئة. السبب الحقيقي نطاق بحث child_of [0] عندما لا يكون للمندوب موقع عهدة.تأمين نطاق البحث في الكودنعم
نحو 500 مخالفة تأخير خاطئة في الموارد البشريةمنطق الجزاءات تجاهل الورديات المقسّمةاحتساب يراعي الورديات (إصدار جديد من الموديول)نعم
خطأ RPC بعد إعادة نشر كود أقدمفلتر محفوظ يشير إلى حقل لم يعد موجوداً في الكود الأقدماستعادة الحقل وإعادة الاختبار على قاعدة بيانات مؤقتةنعم
تعطّل شاشة اختيار قاعدة البيانات في بيئة جديدةنسخة منقوصة من الموديولات في addons_path تحجب الموديولات الأساسيةتصحيح مسار الموديولاتنعم
تعذّر حفظ عقود عشرات الموظفينبيانات قسائم رواتب قديمة من إصدار رئيسي سابقإصلاح في البيانات والكودنعم
تجاوز الحدود القصوى وصرف العمولة مرتين عند الطلبات المتزامنةتمت إعادة إنتاجها بـ أداة اختبار تزامن مخصصةأقفال + اختبارات انحدار (Regression Tests)نعم
فشل استعادة قاعدة بيانات عند جدول التمثيلات المتجهيةامتداد المتجهات غير مثبّت في PostgreSQLتثبيت الامتداد وتنفيذ CREATE EXTENSIONبانتظار التأكيد

درس أطبّقه الآن

في أحد تشغيلات الاختبار، طابق فلتر قاعدة البيانات بيئة الإنتاج أيضاً، فكُتبت بضعة سجلات مؤقتة فيها. وثّقت الحادثة واعتمدت قاعدة: يجب أن تستخدم تشغيلات الاختبار فلتراً دقيقاً لا يطابق أي قاعدة إنتاج.

ما لا ندّعيه

لا يوجد لديّ دليل على حوادث نفاد ذاكرة (OOM) أو أخطاء 502/504، لذا لم نصف أياً منها. ضبط الـ Workers والذاكرة موجود في ملاحظات الإعداد فقط.

→ DevOps والبنية التحتيةالاختبار وضمان الجودة ←