تصحيح أخطاء نتائج ذاكرة التخزين المؤقت عن بُعد للتنفيذ المحلي

تصف هذه الصفحة كيفية التحقّق من أخطاء ذاكرة التخزين المؤقت في سياق التنفيذ المحلي.

تفترض هذه الصفحة أن لديك إصدارًا و/أو اختبارًا يتم إنشاؤه محليًا بنجاح وتم إعداده لاستخدام التخزين المؤقت عن بُعد، وأنك تريد ضمان استخدام ذاكرة التخزين المؤقت عن بُعد بشكل فعّال.

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

التحقق من معدل نتائج ذاكرة التخزين المؤقت

ستظهر نتائج ذاكرة التخزين المؤقت البعيدة في سطر الحالة، على غرار معدّل نتائج ذاكرة التخزين المؤقت مع التنفيذ عن بُعد.

في النتيجة العادية لعملية تشغيل Bazel، سترى شيئًا مثل ما يلي:

   INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.

وهذا يعني أنه من بين 7 إجراءات تمت محاولة تنفيذها، يحصل 3 إجراءات على نتيجة ذاكرة تخزين مؤقت عن بُعد ولم تتضمن 4 إجراءات نتائج ذاكرة التخزين المؤقت وتم تنفيذها محليًا باستخدام استراتيجية linux-sandbox. لا يتم تضمين نتائج ذاكرة التخزين المؤقت المحلية في هذا الملخص. إذا كنت تستخدم 0 عملية (أو رقمًا أقل من المتوقع)، شغِّل bazel clean متبوعًا بالأمر Build/test.

تحديد مشاكل ذاكرة التخزين المؤقت وحلّها

في حال عدم الحصول على معدّل نتائج ذاكرة التخزين المؤقت الذي تتوقّعه، يمكنك إجراء ما يلي:

ضمان التواصل الناجح مع نقطة النهاية البعيدة

لضمان نجاح ربط إصدارك عن ذاكرة التخزين المؤقت عن بُعد، اتّبع الخطوات الواردة في هذا القسم.

  1. التحقّق من الإخراج بحثًا عن تحذيرات

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

       WARNING: Error reading from the remote cache:
    

    أو

       WARNING: Error writing to the remote cache:
    

    تلي هذه التحذيرات رسالة الخطأ التي توضّح تفاصيل مشكلة الاتصال التي من المفترض أن تساعدك على تصحيح الأخطاء: على سبيل المثال، اسم نقطة النهاية غير صحيح أو إعداد بيانات الاعتماد بشكل غير صحيح. ابحَث عن أي من هذه الأخطاء وعالجها. إذا لم تمنحك رسالة الخطأ التي تراها معلومات كافية، يمكنك محاولة إضافة --verbose_failures.

  2. اتّبِع الخطوات الواردة في تحديد مشاكل نتائج ذاكرة التخزين المؤقت والتنفيذ عن بُعد للتأكّد من أنّ استدعاءات Bazel لذاكرة التخزين المؤقت يمكنها الحصول على نتائج ذاكرة التخزين المؤقت على الجهاز نفسه وعلى جميع الأجهزة.

  3. تأكّد من أن استدعاءات Bazel للقراءة في ذاكرة التخزين المؤقت قد تحصل على نتائج ذاكرة التخزين المؤقت.

    أ- وبما أنّ استدعاءات Bazel لذاكرة التخزين المؤقت سيكون لها سطر أوامر مختلف ، يجب توخي الحذر الإضافي لضمان إعدادها بشكل صحيح للتواصل مع ذاكرة التخزين المؤقت عن بُعد. تأكَّد من ضبط علامة --remote_cache ومن عدم ظهور أي تحذيرات في الإخراج.

    ب- تأكّد من أن استدعاءات Bazel للقراءة في ذاكرة التخزين المؤقت تنشئ الأهداف نفسها التي توفّرها استدعاءات Bazel المكتوبة في ذاكرة التخزين المؤقت.

    ج- اتّبِع الخطوات نفسها الواردة في ضمان التخزين المؤقت على جميع الأجهزة لضمان التخزين المؤقت، بدءًا من استدعاء Bazel لذاكرة التخزين المؤقت إلى استدعاء Bazel لقراءة ذاكرة التخزين المؤقت.