ניפוי באגים בהיטים של מטמון מרחוק להפעלה מקומית

דף זה מתאר כיצד לחקור פספוסים במטמון בהקשר של ביצוע מקומי.

דף זה מניח שיש לכם build ו/או בדיקה הבנויה בהצלחה באופן מקומי ושהוגדרה לשימוש בקובץ שמור מרחוק, ושאתם רוצים לוודא שמטמון המטמון המרוחק ינוצל ביעילות.

לקבלת טיפים לבדיקת שיעור ההיטים במטמון ולהשוואה בין יומני ההפעלה של שתי הפעלות Bazel, ראה ניפוי באגים בהיטים של מטמון מרחוק לביצוע מרחוק. כל מה שמופיע במדריך זה חל גם על שמירה במטמון מרחוק באמצעות הרצה מקומית. עם זאת, ביצוע מקומי מציב אתגרים נוספים.

המערכת בודקת את שיעור ההיט של המטמון

התאמות מוצלחות למטמון מרחוק יופיעו בשורת הסטטוס, באופן דומה לשיעור היטים במטמון עם ביצוע מרחוק.

בפלט הרגיל של ריצה בבזל, תראו משהו כמו זה:

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

המשמעות היא שב-7 מתוך 7 פעולות שבוצעו ניסיונות, 3 קיבלו התאמה למטמון מרחוק ו-4 פעולות לא כללו התאמות למטמון ובוצעו באופן מקומי באמצעות linux-sandbox אסטרטגיה. היטים במטמון המקומי לא נכללים בסיכום הזה. אם בחרת לקבל אפס תהליכים (או מספר נמוך מהצפוי), יש להריץ את bazel clean ולאחר מכן את פקודת ה-build/בדיקה.

פתרון בעיות של היטים במטמון

אם אתם לא מקבלים את שיעור ההיט הצפוי למטמון, יש לבצע את הפעולות הבאות:

חשוב להבטיח תקשורת מוצלחת עם נקודת הקצה המרוחקת

כדי להבטיח שה-build מצליח לתקשר עם המטמון המרוחק, פעלו לפי השלבים המפורטים בקטע הזה.

  1. יש לבדוק אם התקבלו אזהרות בפלט

    בהפעלה מרחוק, כשל בתקשורת עם נקודת הקצה המרוחקת עלול להיכשל ב-build. מצד שני, בנייה מקומית שניתנת לשמירה במטמון לא תיכשל אם היא לא תוכל לשמור במטמון. בודקים את הפלט של הפעלת Bazel לקבלת אזהרות, כגון:

       WARNING: Error reading from the remote cache:
    

    או

       WARNING: Error writing to the remote cache:
    

    לאחר אזהרות כאלה תופיע הודעת השגיאה המפרטת את בעיית החיבור, שתעזור לכם לנפות באגים: לדוגמה, שם שגוי של נקודת קצה או הגדרה שגויה של פרטי כניסה. מאתרים שגיאות מסוג זה ומטפלים בהן. אם הודעת השגיאה המוצגת לא כוללת מספיק מידע, אפשר לנסות להוסיף את --verbose_failures.

  2. יש לפעול לפי השלבים מפתרון בעיות להתאמות במטמון של ביצוע מרחוק כדי להבטיח שההפעלה של בזל שתכתב את המטמון תוכל לקבל היטים במטמון באותו מחשב ובמכשירים שונים.

  3. יש לוודא שהפעלות Bazel הנקראות במטמון יכולות לקבל היטים במטמון.

    א. מאחר שהפעלות באזל שנקראות במטמון מוגדרות כשורת פקודה שונה, יש לנקוט משנה זהירות כדי להבטיח שהן מוגדרות כהלכה לתקשורת עם המטמון המרוחק. יש לוודא שהדגל --remote_cache מוגדר ושאין אזהרות בפלט.

    ב. יש לוודא שהפעלות Bazel הנקראות במטמון יוצרות יעדים זהים לאלה של הפעלות Bazel שנכתבות במטמון.

    ג. פועלים לפי אותם השלביםשמירה במטמון במחשבים , כדי להבטיח שמירה במטמון של הפעלת Bazel שנועדה לכתיבת קובץ שמור ועד להפעלת Bazel שנקראה במטמון.