Halaman ini menunjukkan cara menyelesaikan masalah pada Batch.
Jika Anda mencoba memecahkan masalah tugas yang tidak memiliki pesan error, periksa apakah histori tugas berisi pesan error dengan melihat peristiwa status sebelum meninjau dokumen ini.
Untuk informasi selengkapnya tentang cara memecahkan masalah tugas, lihat juga dokumen berikut:
Terjadi error saat membuat lowongan
Jika Anda tidak dapat membuat tugas, mungkin karena ada salah satu error di bagian ini.
Kuota tidak mencukupi
Masalah
Salah satu masalah berikut terjadi saat Anda mencoba membuat tugas:
Saat tugas dalam status
QUEUED
, masalah berikut akan muncul di kolomstatusEvents
:Quota checking process decides to delay scheduling for the job JOB_UID due to inadequate quotas [Quota: QUOTA_NAME, limit: QUOTA_LIMIT, usage: QUOTA_CURRENT_USAGE, wanted: WANTED_QUOTA.].
Masalah ini menunjukkan bahwa tugas telah tertunda karena penggunaan saat ini (
QUOTA_USAGE
) dan batas (QUOTA_LIMIT
) kuotaQUOTA_NAME
mencegah penggunaan tugas yang diminta (WANT_QUOTA
).Saat tugas dalam status
QUEUED
,SCHEDULED
, atauFAILED
, salah satu masalah berikut akan muncul di kolomstatusEvents
:RESOURCE_NAME creation failed: Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in region REGION
RESOURCE_NAME creation failed: Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in zone ZONE
Masalah ini menunjukkan bahwa pembuatan resource gagal karena permintaan melebihi kuota
QUOTA_NAME
, yang memiliki batasQUOTA_LIMIT
di lokasi yang ditentukan.
Solusi
Untuk mengatasi masalah tersebut, lakukan langkah berikut:
Jika tugas tertunda, cobalah untuk menunggu hingga kuota lebih banyak dibebaskan.
Jika tugas gagal karena kuota tidak mencukupi atau jika penundaan ini terus berlanjut, coba cegah kuota tidak mencukupi dengan melakukan salah satu hal berikut:
Membuat tugas yang menggunakan lebih sedikit kuota tersebut atau kuota berbeda. Misalnya, tentukan lokasi atau jenis resource lain yang diizinkan untuk tugas tersebut, atau bagi penggunaan kuota ke beberapa project tambahan.
Minta batas kuota yang lebih tinggi untuk project Anda dari Google Cloud.
Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas batch dan Bekerja dengan kuota.
Izin tidak memadai untuk bertindak sebagai akun layanan
Masalah
Masalah berikut terjadi saat Anda mencoba membuat tugas:
Jika tugas tidak menggunakan template instance, masalah akan muncul seperti berikut:
caller does not have access to act as the specified service account: SERVICE_ACCOUNT_NAME
Jika tugas menggunakan template instance, masalahnya akan muncul seperti berikut:
Error: code - CODE_SERVICE_ACCOUNT_MISMATCH, description - The service account specified in the instance template INSTANCE_TEMPLATE_SERVICE_ACCOUNT doesn't match the service account specified in the job JOB_SERVICE_ACCOUNT for JOB_UID, project PROJECT_NUMBER
Masalah ini biasanya terjadi karena pengguna yang membuat tugas tidak memiliki
izin yang memadai untuk bertindak sebagai akun layanan yang digunakan oleh tugas tersebut,
yang dikontrol oleh
izin iam.serviceAccounts.actAs
.
Solusi
Untuk mengatasi masalah tersebut, lakukan langkah berikut:
- Jika tugas menggunakan template instance, pastikan bahwa akun layanan yang ditentukan dalam template instance cocok dengan akun layanan yang ditentukan dalam definisi tugas.
- Pastikan pengguna yang membuat tugas telah diberi peran Service Account User (
roles/iam.serviceAccountUser
) pada akun layanan yang ditentukan untuk tugas tersebut. Untuk mendapatkan informasi lebih lanjut, lihat Mengelola akses. - Membuat ulang tugas.
Jaringan berulang
Masalah
Masalah berikut terjadi saat Anda mencoba membuat tugas:
Networks must be distinct for NICs in the same InstanceTemplate
Masalah ini terjadi karena Anda menentukan jaringan untuk suatu tugas lebih dari sekali.
Solusi
Untuk mengatasi masalah ini, buat ulang tugas dan tentukan jaringan menggunakan salah satu opsi berikut:
- Template instance VM: Jika ingin menggunakan template instance VM saat membuat tugas ini, Anda harus menentukan jaringan dalam template instance VM.
- Kolom
network
dansubnetwork
: Kolom ini dapat digunakan dalam isi permintaan saat Anda membuat tugas menggunakan Batch API atau dalam file konfigurasi JSON saat membuat tugas menggunakan gcloud CLI. - Flag
--network
dan--subnetwork
: Flag ini dapat digunakan dengan perintahgcloud batch jobs submit
saat Anda membuat tugas menggunakan gcloud CLI.
Untuk informasi selengkapnya, lihat Menentukan jaringan untuk tugas.
Jaringan tidak valid untuk Kontrol Layanan VPC
Masalah
Masalah berikut terjadi saat Anda mencoba membuat tugas:
no_external_ip_address field is invalid. VPC Service Controls is enabled for the project, so external ip address must be disabled for the job. Please set no_external_ip_address field to be true
Solusi
Masalah ini terjadi karena Anda mencoba membuat dan menjalankan tugas dengan VM yang memiliki alamat IP eksternal di perimeter layanan Kontrol Layanan VPC.
Untuk mengatasi masalah ini, buat tugas yang memblokir akses eksternal untuk semua VM.
Untuk mendapatkan informasi lebih lanjut tentang cara mengonfigurasi jaringan untuk tugas di perimeter layanan Kontrol Layanan VPC, lihat Menggunakan Kontrol Layanan VPC dengan Batch.
Error kegagalan tugas
Jika Anda mengalami masalah dengan tugas yang tidak berjalan dengan benar atau gagal karena alasan yang tidak jelas, hal ini mungkin disebabkan oleh salah satu error di bagian ini atau salah satu kode keluar di bagian Kode keluar kegagalan tugas berikut.
Tidak ada log di Cloud Logging
Masalah
Anda perlu men-debug tugas, tetapi tidak ada log yang muncul untuk tugas tersebut di Cloud Logging.
Masalah ini sering terjadi karena alasan berikut:
- Cloud Logging API tidak diaktifkan untuk project Anda. Meskipun jika Anda mengonfigurasi segala hal lainnya dengan benar untuk log tugas, hal ini tidak akan menghasilkan log jika layanan tidak diaktifkan untuk project Anda.
- Akun layanan tugas tidak memiliki izin untuk menulis log. Tugas tidak dapat menghasilkan log tanpa izin yang memadai.
- Tugas tidak dikonfigurasi untuk menghasilkan log. Untuk menghasilkan log di Cloud Logging, tugas harus mengaktifkan Cloud Logging. Runnable tugas juga harus dikonfigurasi untuk menulis informasi apa pun yang ingin Anda tampilkan dalam log ke stream output standar (stdout) dan standard error (stderr). Untuk mengetahui informasi selengkapnya, lihat Menganalisis tugas menggunakan log.
- Tugas tidak berjalan. Log tidak dapat dihasilkan sampai tugas diberi sumber daya dan mulai berjalan.
Solusi
Untuk mengatasi masalah ini, lakukan langkah berikut:
- Pastikan Cloud Logging API diaktifkan untuk project Anda.
- Pastikan akun layanan untuk tugas tersebut memiliki peran IAM Logs Writer (
roles/logging.logWriter
). Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan Batch untuk sebuah project. - Lihat detail tugas menggunakan gcloud CLI atau Batch API.
Detail tugas dapat membantu Anda memahami alasan tugas tidak menghasilkan log dan dapat memberikan informasi yang diharapkan dari log. Misalnya, lakukan tindakan berikut:
- Untuk memastikan bahwa logging diaktifkan, tinjau kolom
logsPolicy
tugas. - Untuk memverifikasi bahwa tugas berhasil berjalan, tinjau kolom
status
tugas.
- Untuk memastikan bahwa logging diaktifkan, tinjau kolom
Tidak ada pelaporan agen layanan
Masalah
Masalah berikut muncul di kolom statusEvents
untuk tugas yang tidak berjalan dengan benar atau gagal sebelum VM dibuat:
No VM has agent reporting correctly within time window NUMBER_OF_SECONDS seconds, VM state for instance VM_NAME is TIMESTAMP,agent,start
Masalah ini menunjukkan bahwa tidak ada VM tugas yang melapor ke agen layanan Batch.
Masalah ini sering terjadi karena alasan berikut:
- VM tugas tidak memiliki izin yang memadai.
VM tugas memerlukan izin khusus untuk melaporkan statusnya ke agen layanan Batch. Anda dapat memberikan izin ini
untuk VM tugas dengan memberikan
peran Reporter Agen Batch (
roles/batch.agentReporter
) ke akun layanan tugas. - VM tugas memiliki masalah jaringan. VM tugas memerlukan akses jaringan untuk berkomunikasi dengan agen layanan Batch.
- VM tugas menggunakan image OS Batch VM yang sudah tidak berlaku atau menggunakan image OS VM dengan software agen layanan Batch yang sudah usang. VM tugas memerlukan software dalam image OS VM-nya yang menyediakan dependensi saat ini untuk pelaporan ke agen layanan Batch.
Solusi
Untuk mengatasi masalah tersebut, lakukan langkah berikut:
Pastikan VM tugas memiliki izin yang diperlukan untuk melaporkan statusnya ke agen layanan Batch.
- Untuk mengidentifikasi akun layanan tugas, lihat detail tugas menggunakan gcloud CLI atau Batch API. Jika tidak ada akun layanan yang tercantum, tugas akan menggunakan akun layanan default Compute Engine secara default.
Pastikan akun layanan tugas memiliki izin untuk peran Pelapor Agen Batch (
roles/batch.agentReporter
). Untuk informasi selengkapnya, lihat Mengelola akses dan Membatasi penggunaan akun layanan.Misalnya, untuk memberikan izin yang diperlukan kepada akun layanan default Compute Engine, gunakan perintah berikut:
gcloud projects add-iam-policy-binding \ --role roles/batch.agentReporter \ --member serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com
Ganti PROJECT_NUMBER dengan nomor project Anda.
Memverifikasi bahwa VM tugas memiliki akses jaringan yang tepat. Untuk mengetahui informasi selengkapnya, lihat Ringkasan jaringan batch dan Memecahkan masalah jaringan umum.
Jika Anda menentukan image OS VM untuk tugas tersebut, pastikan bahwa image OS VM saat ini didukung.
Jika mengaktifkan Cloud Logging untuk tugas ini, Anda dapat mengidentifikasi masalah ini dengan memeriksa salah satu log agen berikut (
batch_agent_logs
). Untuk informasi selengkapnya, lihat Menganalisis tugas menggunakan log.Catat error software agen layanan Batch yang sudah tidak berlaku:
rpc error: code = FailedPrecondition, desc = Invalid resource state for BATCH_AGENT_VERSION: outdated Batch agent version used.
BATCH_AGENT_VERSION adalah versi software untuk berkomunikasi dengan agen layanan Batch yang digunakan tugas tersebut—misalnya,
cloud-batch-agent_20221103.00_p00
.Catat error image OS Batch VM yang sudah tidak berlaku:
rpc error: code = FailedPrecondition, desc = Invalid resource state for BATCH_VM_OS_IMAGE_NAME: outdated Batch image version.
BATCH_VM_OS_IMAGE_NAME adalah versi spesifik image OS VM dari Batch yang digunakan tugas tersebut—misalnya,
batch-debian-11-20220909-00-p00
.
Anda dapat mengatasi masalah ini menggunakan OS image VM yang lebih baru. Jika tugas menggunakan gambar kustom, buat ulang gambar kustom berdasarkan salah satu versi terbaru gambar publik yang didukung.
Untuk mengetahui informasi selengkapnya, baca Image OS VM yang didukung dan Melihat image OS VM.
Membuat ulang tugas.
Batasan dilanggar untuk alamat IP eksternal VM
Masalah
Masalah berikut muncul di
kolom statusEvents
untuk tugas yang gagal:
Instance VM_NAME creation failed: Constraint constraints/compute.vmExternalIpAccess violated for project PROJECT_NUMBER. Add instance VM_NAME to the constraint to use external IP with it.
Masalah ini terjadi karena project, folder, atau organisasi Anda telah menetapkan batasan kebijakan organisasi compute.vmExternalIpAccess
sehingga hanya VM yang diizinkan yang dapat menggunakan alamat IP eksternal.
Solusi
Untuk mengatasi masalah ini, buat ulang tugas dan lakukan salah satu tindakan berikut:
- Menggunakan project yang dikecualikan dari batasan.
- Membuat tugas yang memblokir akses eksternal untuk semua VM.
Batasan dilanggar untuk image tepercaya
Masalah
Masalah berikut muncul di
kolom statusEvents
untuk tugas yang gagal:
Instance VM_NAME creation failed: Constraint constraints/compute.trustedImageProjects violated for project PROJECT_ID. Use of images from project batch-custom-image is prohibited.
Solusi
Masalah ini terjadi karena project Anda telah menetapkan batasan kebijakan
image tepercaya (compute.trustedImageProjects
)
sehingga gambar dari Batch, yang ada dalam
project gambar batch-custom-image
, tidak diizinkan.
Untuk mengatasi masalah ini, lakukan minimal salah satu hal berikut:
- Membuat ulang tugas untuk menentukan OS image VM yang telah diizinkan oleh batasan kebijakan image tepercaya.
- Minta administrator Anda untuk mengizinkan perubahan batasan kebijakan image tepercaya guna mengizinkan image OS VM dari project image
batch-custom-image
. Untuk mengetahui petunjuknya, lihat Mengontrol akses ke image VM OS untuk Batch.
Tugas gagal saat menggunakan template instance
Masalah
Masalah berikut muncul di
kolom statusEvents
untuk tugas yang gagal yang menggunakan template instance:
INVALID_FIELD_VALUE,BACKEND_ERROR
Masalah ini terjadi karena masalah yang tidak jelas dengan template instance tugas.
Solusi
Untuk men-debug masalah lebih lanjut, lakukan hal berikut:
- Buat MIG menggunakan template instance dan amati apakah terjadi error dengan memberikan detail selengkapnya.
Opsional: Untuk mencoba menemukan informasi lebih lanjut, lihat operasi yang berjalan lama yang membuat MIG di konsol Google Cloud.
Kode keluar untuk kegagalan tugas
Jika tugas tertentu dalam tugas gagal, tugas tersebut akan menampilkan
kode keluar bukan nol.
Bergantung pada cara Anda mengonfigurasi
kolom ignoreExitStatus
,
tugas yang gagal mungkin atau mungkin tidak menyebabkan tugas gagal.
Selain exit code yang Anda tentukan dalam runnable, Batch memiliki beberapa exit code yang dicadangkan, termasuk exit code berikut.
preemption VM (50001)
Masalah
Masalah berikut muncul di
kolom statusEvents
untuk tugas:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to Spot Preemption with exit code 50001.
Masalah ini terjadi saat Spot VM untuk tugas di-preempt selama runtime.
Solusi
Untuk mengatasi masalah ini, lakukan salah satu langkah berikut:
- Coba lagi tugas tersebut menggunakan percobaan ulang tugas otomatis atau menjalankan ulang tugas secara manual.
- Untuk menjamin tidak adanya preemption, gunakan VM dengan model penyediaan standar.
Waktu tunggu pelaporan VM (50002)
Masalah
Masalah berikut muncul di
kolom statusEvents
untuk tugas:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to Batch no longer receives VM updates with exit code 50002.
Masalah ini terjadi saat waktu tunggu di backend habis yang menyebabkan VM untuk tugas tidak lagi menerima update.
Solusi
Untuk mengatasi masalah ini, coba lagi tugas tersebut menggunakan percobaan ulang tugas otomatis atau menjalankan ulang tugas secara manual.
VM di-reboot selama eksekusi (50003)
Masalah
Masalah berikut muncul di
kolom statusEvents
untuk tugas:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to VM is rebooted during task execution with exit code 50003.
Masalah ini terjadi saat VM untuk tugas tiba-tiba dimulai ulang selama runtime.
Solusi
Untuk mengatasi masalah ini, coba lagi tugas tersebut menggunakan percobaan ulang tugas otomatis atau menjalankan ulang tugas secara manual.
VM dan tugas tidak responsif (50004)
Masalah
Masalah berikut muncul di
kolom statusEvents
untuk tugas:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to tasks cannot be canceled with exit code 50004.
Masalah ini terjadi saat tugas mencapai batas waktu yang tidak responsif dan tidak dapat dibatalkan.
Solusi
Untuk mengatasi masalah ini, coba lagi tugas tersebut menggunakan percobaan ulang tugas otomatis atau menjalankan ulang tugas secara manual.
Tugas berjalan pada runtime maksimum (50005)
Masalah
Masalah berikut muncul di
kolom statusEvents
untuk tugas:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to task runs over the maximum runtime with exit code 50005.
Masalah ini terjadi dalam kasus berikut:
- Waktu proses tugas melebihi batas waktu yang ditentukan di
kolom
maxRunDuration
- Waktu proses runnable melebihi batas waktu yang ditentukan di
kolom
timeout
Untuk mengidentifikasi secara khusus batas waktu yang terlampaui,
lihat log untuk tugas
dan temukan log yang menyebutkan kode keluar 50005
. Kolom textPayload
pada log ini menunjukkan kapan dan di mana batas waktu terlampaui.
Solusi
Untuk mengatasi masalah ini, coba verifikasi total waktu proses yang diperlukan oleh tugas atau runnable yang melebihi batas waktu. Kemudian, lakukan salah satu hal berikut:
Jika Anda hanya sesekali mendapati error ini, seperti untuk tugas atau runnable dengan waktu proses yang tidak konsisten, Anda dapat mencoba membuat ulang tugas dan mengonfigurasinya untuk mengotomatiskan percobaan ulang tugas guna mencoba meningkatkan tingkat keberhasilan.
Atau, jika tugas atau runnable secara konsisten dan sengaja memerlukan lebih banyak waktu untuk diselesaikan daripada yang dimungkinkan oleh waktu tunggu saat ini, tetapkan waktu tunggu yang lebih lama.
VM dibuat ulang selama eksekusi (50006)
Masalah
Masalah berikut muncul di
kolom statusEvents
untuk tugas:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to VM is recreated during task execution with exit code 50006.
Masalah ini terjadi saat VM untuk tugas tiba-tiba dibuat ulang selama runtime.
Solusi
Untuk mengatasi masalah ini, coba lagi tugas tersebut menggunakan percobaan ulang tugas otomatis atau menjalankan ulang tugas secara manual.