लोकल प्रोग्राम चलाने के लिए रिमोट कैश हिट को डीबग करना

इस पेज पर, लोकल एक्ज़ीक्यूशन के संदर्भ में कैश हिट न होने की समस्या की जांच करने का तरीका बताया गया है.

इस पेज पर यह माना गया है कि आपके पास कोई ऐसा बिल्ड और/या टेस्ट है जो स्थानीय तौर पर सही तरीके से बनाया गया है और जिसे रिमोट कैशिंग का इस्तेमाल करने के लिए सेट अप किया गया है. साथ ही, यह भी माना गया है कि आपको यह पक्का करना है कि रिमोट कैश का सही तरीके से इस्तेमाल किया जा रहा है.

कैश हिट रेट की जांच करने और Bazel के दो इनवोकेशन के बीच, एक्ज़ीक्यूशन लॉग की तुलना करने के बारे में सलाह पाने के लिए, रिमोट एक्ज़ीक्यूशन के लिए रिमोट कैश हिट को डीबग करना लेख पढ़ें. उस गाइड में दी गई सभी जानकारी, लोकल एक्ज़ीक्यूशन के साथ रिमोट कैशिंग पर भी लागू होती है. हालांकि, लोकल एक्ज़ीक्यूशन में कुछ और समस्याएं भी आ सकती हैं.

कैश हिट रेट की जांच करना

रिमोट कैश हिट होने पर, स्टेटस लाइन में जानकारी दिखेगी. यह जानकारी, रिमोट एक्ज़ीक्यूशन के साथ कैश हिट रेट की तरह ही दिखेगी.

Bazel रन के स्टैंडर्ड आउटपुट में, आपको कुछ ऐसा दिखेगा:

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

इसका मतलब है कि सात कार्रवाइयों में से तीन के लिए रिमोट कैश हिट हुआ. वहीं, चार कार्रवाइयों के लिए कैश हिट नहीं हुआ और उन्हें linux-sandbox रणनीति का इस्तेमाल करके, स्थानीय तौर पर एक्ज़ीक्यूट किया गया. इस खास जानकारी में, लोकल कैश हिट शामिल नहीं हैं. अगर आपको 0 प्रोसेस (या उम्मीद से कम संख्या) दिखती है, तो bazel clean कमांड चलाएं. इसके बाद, अपना बिल्ड/टेस्ट कमांड चलाएं.

कैश हिट की समस्याओं को हल करना

अगर आपको कैश हिट रेट, उम्मीद के मुताबिक नहीं मिल रहा है, तो यह तरीका अपनाएं:

पक्का करें कि रिमोट एंडपॉइंट के साथ सही तरीके से कम्यूनिकेट किया जा रहा हो

यह पक्का करने के लिए कि आपका बिल्ड, रिमोट कैश के साथ सही तरीके से कम्यूनिकेट कर रहा है, इस सेक्शन में दिया गया तरीका अपनाएं.

  1. चेतावनी के लिए अपना आउटपुट देखें

    रिमोट एक्ज़ीक्यूशन के दौरान, रिमोट एंडपॉइंट से कम्यूनिकेट न कर पाने पर, आपका बिल्ड फ़ेल हो जाएगा. वहीं, कैश किया जा सकने वाला लोकल बिल्ड, कैश न कर पाने पर फ़ेल नहीं होगा. Bazel इनवोकेशन के आउटपुट में, चेतावनियां देखें. जैसे:

       WARNING: Error reading from the remote cache:
    

    या

       WARNING: Error writing to the remote cache:
    

    इस तरह की चेतावनियों के बाद, गड़बड़ी का मैसेज दिखेगा. इसमें कनेक्शन की समस्या के बारे में जानकारी दी जाएगी. इससे आपको डीबग करने में मदद मिलेगी. उदाहरण के लिए, एंडपॉइंट का नाम गलत टाइप करना या क्रेडेंशियल गलत तरीके से सेट करना. इस तरह की गड़बड़ियों को ढूंढें और उन्हें ठीक करें. अगर आपको दिखने वाले गड़बड़ी के मैसेज में पूरी जानकारी नहीं मिलती है, तो --verbose_failures जोड़कर देखें.

  2. यह पक्का करने के लिए कि कैश-राइटिंग Bazel इनवोकेशन, एक ही मशीन और अलग-अलग मशीनों पर कैश हिट कर पाएं, रिमोट एक्ज़ीक्यूशन के लिए कैश हिट की समस्याओं को हल करना लेख में दिया गया तरीका अपनाएं.

  3. पक्का करें कि कैश-रीडिंग Bazel इनवोकेशन, कैश हिट कर पाएं.

    a. कैश-रीडिंग Bazel इनवोकेशन के लिए, कमांड-लाइन सेट अप अलग होगा. इसलिए, यह पक्का करने के लिए ज़्यादा ध्यान दें कि उन्हें रिमोट कैश के साथ कम्युनिकेट करने के लिए सही तरीके से सेट अप किया गया हो. पक्का करें कि --remote_cache फ़्लैग सेट हो और आउटपुट में कोई चेतावनी न हो.

    b. पक्का करें कि कैश-रीडिंग Bazel इनवोकेशन, कैश-राइटिंग Bazel इनवोकेशन की तरह ही टारगेट बनाएं.

    c. कैश-राइटिंग Bazel इनवोकेशन से आपके कैश-रीडिंग Bazel इनवोकेशन तक कैशिंग पक्का करने के लिए, वही तरीका अपनाएं जो अलग-अलग मशीनों पर कैशिंग पक्का करने के लिए अपनाया जाता है.