Men-debug Hit Cache Jarak Jauh untuk Eksekusi Lokal

Laporkan masalah Lihat sumber Per Malam · 7,2 · 7,1 · 7,0 · 6,5 · 6,4

Halaman ini menjelaskan cara menyelidiki cache tidak ditemukan dalam konteks dalam proses eksekusi.

Halaman ini mengasumsikan bahwa Anda memiliki build dan/atau pengujian yang berhasil dibangun secara lokal dan disiapkan untuk memanfaatkan cache jarak jauh, dan Anda ingin memastikan {i>cache<i} jarak jauh digunakan secara efektif.

Untuk mendapatkan tips tentang cara memeriksa rasio cache ditemukan dan cara membandingkan eksekusi log di antara dua pemanggilan Bazel, lihat Men-debug Ditemukannya Cache Jarak Jauh untuk Eksekusi Jarak Jauh. Segala sesuatu yang disajikan dalam panduan tersebut juga berlaku untuk {i>caching<i} jarak jauh dengan dalam proses eksekusi. Akan tetapi, eksekusi lokal menghadirkan beberapa tantangan tambahan.

Memeriksa rasio cache ditemukan

Hit cache jarak jauh yang berhasil akan muncul di baris status, mirip dengan Rasio Hits Cache dengan Remote Eksekusi.

Pada {i>output<i} standar dari perintah Bazel, Anda akan melihat sesuatu seperti berikut ini:

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

Artinya, dari 7 tindakan yang dicoba, 3 mendapatkan cache jarak jauh dan 4 tindakan tidak mendapatkan cache ditemukan dan dijalankan secara lokal menggunakan linux-sandbox strategi. Hit cache lokal tidak disertakan dalam ringkasan ini. Jika Anda mendapatkan 0 proses (atau angka yang lebih rendah dari yang diharapkan), jalankan bazel clean diikuti dengan perintah build/test Anda.

Pemecahan masalah cache ditemukan

Jika Anda tidak mendapatkan rasio cache ditemukan yang diharapkan, lakukan hal berikut:

Memastikan keberhasilan komunikasi dengan endpoint jarak jauh

Untuk memastikan build Anda berhasil berkomunikasi dengan cache jarak jauh, ikuti langkah-langkah di bagian ini.

  1. Memeriksa output Anda untuk mengetahui peringatan

    Dengan eksekusi jarak jauh, kegagalan untuk berkomunikasi dengan endpoint jarak jauh akan gagal build Anda. Di sisi lain, build lokal yang dapat di-cache tidak akan gagal jika tidak dapat di-cache. Periksa output pemanggilan Bazel Anda untuk mengetahui peringatan, seperti sebagai:

       WARNING: Error reading from the remote cache:
    

    atau

       WARNING: Error writing to the remote cache:
    

    Peringatan tersebut akan diikuti dengan pesan error yang menjelaskan koneksi masalah yang seharusnya membantu Anda men-{i>debug<i}: misalnya, kesalahan ketik nama {i>endpoint<i} atau menetapkan kredensial yang salah. Temukan dan atasi error tersebut. Jika kesalahan pesan yang Anda lihat tidak memberi informasi yang cukup, coba tambahkan --verbose_failures.

  2. Ikuti langkah-langkah dari Memecahkan masalah cache untuk remote dieksekusi menjadi memastikan bahwa pemanggilan Bazel yang menulis cache bisa mendapatkan hasil cache pada komputer yang sama dan di seluruh komputer.

  3. Pastikan pemanggilan Bazel pembacaan cache bisa mendapatkan hasil cache.

    a. Karena pemanggilan Bazel pembacaan cache akan memiliki rangkaian command line yang berbeda periksa, periksalah lebih lanjut untuk memastikan bahwa server tersebut telah disiapkan dengan benar berkomunikasi dengan {i>cache<i} jarak jauh. Pastikan tanda --remote_cache ditetapkan dan tidak ada peringatan dalam output.

    b. Pastikan pemanggilan Bazel pembacaan cache membangun target yang sama dengan pemanggilan Bazel yang menulis cache.

    c. Ikuti langkah yang sama untuk memastikan penyimpanan cache di seluruh komputer, untuk memastikan {i>caching<i} dari pemanggilan Bazel yang menulis {i>cache<i} ke pemanggilan Bazel pembacaan cache.