Rust: التحقيق في خطأ غريب في استنفاد الذاكرة

2025-01-19
Rust: التحقيق في خطأ غريب في استنفاد الذاكرة

واجهت خدمة Rust engine-gateway من Qovery تعطلًا غير متوقعًا بسبب استنفاد الذاكرة (OOM). أظهر المراقبة استخدامًا ثابتًا للذاكرة قبل إعادة التشغيل المفاجئة. الجاني؟ مكتبة anyhow، عندما تكون تتبعات الأخطاء ممكّنة، تقوم بالتقاط تتبع أخطاء لكل خطأ. تم حل الرموز، فقط عند طباعة الأخطاء في وضع التصحيح (`{:?}`)، مما تسبب في استهلاك هائل للذاكرة. لقد تم حل المشكلة عن طريق تعيين متغيرات البيئة `RUST_BACKTRACE=1` و `RUST_LIB_BACKTRACE=0` لتمكين تتبعات الأخطاء فقط في حالة حدوث حالة من الهلع. هذا يبرز مدى خداع المراقبة وأهمية مراجعة شاملة لوثائق المكتبة.

التطوير