تصحيح خطأ حظر JDK في 30 دقيقة باستخدام Fray: قصة مثيرة في البرمجة المتزامنة

2025-06-07

أثناء إضافة اختبارات التكامل لـ Fray، واجه الكاتب حالة حظر في ScheduledThreadPoolExecutor الخاص بـ JDK، ناجمة عن شفرة تبدو غير ضارة. باستخدام ميزة إعادة التشغيل الحتمية وتصور الجدولة في Fray، تم تحديد السبب الرئيسي بسرعة: في حالة إيقاف التشغيل (SHUTDOWN)، يمكن أن يتعطل FutureTask.get إلى أجل غير مسمى. ينبع هذا من التنفيذ المتداخل لأساليب الجدولة (schedule) وإيقاف التشغيل (shutdown)، تاركًا المهام في حالة من الانتظار. وقدمت Fray رؤية واضحة لتداخل الخيوط، مما أتاح إعادة إنتاج وإبلاغ هذا الخطأ في التزامن في JDK.

اقرأ المزيد
التطوير

خطأ غريب ناتج عن آلية التخزين المؤقت في كروم: رحلة تصحيح أخطاء متعرجة

2025-03-03

عثر المؤلف على خطأ أثناء تصحيح أخطاء عارض باركيه، حيث تعطل البرنامج عند الوصول إلى تخزين S3. وبعد التحقيق، تبين أن المشكلة ليست في رمز التطبيق، بل في آلية التخزين المؤقت في كروم. عند التعامل مع طلبات النطاق، يقوم كروم بتحسين التخزين المؤقت، ولكن عندما يُرجع الخادم خطأ 403، لا يزال كروم يُرجع بيانات جزئية، مما يتسبب في تعطل البرنامج. أبلغ المؤلف فريق كروم عن هذه المشكلة، لكن الفريق اعتبرها ميزة وليست خطأ. في النهاية، اختار المؤلف إصلاح المشكلة في OpenDAL. هذه القصة تُذكرنا بأن إيجاد الحد الصحيح للثقة يمكن أن يُسرّع عملية تصحيح الأخطاء بشكل كبير.

اقرأ المزيد