Auf dieser Seite erfahren Sie, wie Sie Probleme mit Batch beheben.
Wenn Sie einen Job beheben möchten, für den Sie keine Fehlermeldung erhalten haben, prüfen Sie, ob der Jobverlauf Fehlermeldungen enthält. Sehen Sie sich dazu die Statusereignisse an, bevor Sie dieses Dokument lesen.
Weitere Informationen zur Fehlerbehebung bei einem Job finden Sie auch in den folgenden Dokumenten:
Fehler beim Erstellen von Jobs
Wenn Sie keinen Job erstellen können, liegt dies möglicherweise an einem der Fehler in diesem Abschnitt.
Unzureichendes Kontingent
Problem
Eines der folgenden Probleme tritt auf, wenn Sie versuchen, einen Job zu erstellen:
Wenn sich der Job im Status
QUEUED
befindet, wird das folgende Problem im FeldstatusEvents
angezeigt: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.].
Dieses Problem weist darauf hin, dass der Job verzögert wurde, weil die aktuelle Nutzung (
QUOTA_USAGE
) und das Limit (QUOTA_LIMIT
) desQUOTA_NAME
-Kontingents die angeforderte Nutzung (WANT_QUOTA
) des Jobs verhindert haben.Wenn der Job den Status
QUEUED
,SCHEDULED
oderFAILED
hat, wird eines der folgenden Probleme imstatusEvents
-Feld angezeigt: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
Dieses Problem weist darauf hin, dass die Erstellung einer Ressource fehlgeschlagen ist, weil die Anfrage Ihr
QUOTA_NAME
-Kontingent überschritten hat, das am angegebenen Standort ein Limit vonQUOTA_LIMIT
hat.
Lösung
So beheben Sie das Problem:
Wenn der Job verzögert wurde, warten Sie, bis mehr Kontingent freigegeben wird.
Wenn der Job aufgrund eines unzureichenden Kontingents fehlgeschlagen ist oder diese Verzögerungen anhalten, können Sie versuchen, ein unzureichendes Kontingent zu vermeiden, indem Sie eine der folgenden Maßnahmen ergreifen:
Erstellen Sie Jobs, die weniger von diesem oder einem anderen Kontingent nutzen. Geben Sie beispielsweise einen anderen zulässigen Standort oder Ressourcentyp für den Job an oder verteilen Sie die Kontingentnutzung auf zusätzliche Projekte.
Fordern Sie über Google Cloudein höheres Kontingentlimit für Ihr Projekt an.
Weitere Informationen finden Sie unter Batch-Kontingente und ‑Limits und Mit Kontingenten arbeiten.
Unzureichende Berechtigungen, um als Dienstkonto zu fungieren
Problem
Das folgende Problem tritt auf, wenn Sie versuchen, einen Job zu erstellen:
Wenn für den Job keine Instanzvorlage verwendet wird, sieht das Problem so aus:
caller does not have access to act as the specified service account: SERVICE_ACCOUNT_NAME
Wenn für den Job eine Instanzvorlage verwendet wird, wird das Problem so angezeigt:
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
Dieses Problem tritt normalerweise auf, weil der Nutzer, der den Job erstellt, nicht über die erforderlichen Berechtigungen verfügt, um als das vom Job verwendete Dienstkonto zu agieren. Dies wird durch die Berechtigung iam.serviceAccounts.actAs
gesteuert.
Lösung
So beheben Sie das Problem:
- Wenn für den Job eine Instanzvorlage verwendet wird, prüfen Sie, ob das in der Instanzvorlage angegebene Dienstkonto mit dem in der Jobdefinition angegebenen Dienstkonto übereinstimmt.
- Achten Sie darauf, dass dem Nutzer, der den Job erstellt, die Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser
) für das für den Job angegebene Dienstkonto zugewiesen wurde. Weitere Informationen finden Sie unter Zugriff verwalten. - Erstellen Sie den Job neu.
Wiederholte Netzwerke
Problem
Das folgende Problem tritt auf, wenn Sie versuchen, einen Job zu erstellen:
Networks must be distinct for NICs in the same InstanceTemplate
Dieses Problem tritt auf, weil Sie das Netzwerk für einen Job mehrmals angegeben haben.
Lösung
Um das Problem zu beheben, erstellen Sie den Job neu und geben Sie das Netzwerk mit einer der folgenden Optionen an:
- VM-Instanzvorlage:Wenn Sie eine VM-Instanzvorlage beim Erstellen dieses Jobs verwenden möchten, müssen Sie das Netzwerk in der VM-Instanzvorlage angeben.
- Felder
network
undsubnetwork
:Diese Felder können im Anfragetext verwendet werden, wenn Sie einen Job mit der Batch API erstellen, oder in der JSON-Konfigurationsdatei, wenn Sie einen Job mit der gcloud CLI erstellen. --network
- und--subnetwork
-Flags:Diese Flags können mit dem Befehlgcloud batch jobs submit
verwendet werden, wenn Sie einen Job mit der gcloud CLI erstellen.
Weitere Informationen finden Sie unter Netzwerk für einen Job angeben.
Ungültiges Netzwerk für VPC Service Controls
Problem
Das folgende Problem tritt auf, wenn Sie versuchen, einen Job zu erstellen:
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
Lösung
Dieses Problem tritt auf, weil Sie versuchen, einen Job mit VMs zu erstellen und auszuführen, die externe IP-Adressen in einem VPC Service Controls-Dienstperimeter haben.
Um das Problem zu beheben, erstellen Sie einen Job, der den externen Zugriff für alle VMs blockiert.
Weitere Informationen zum Konfigurieren des Netzwerks für einen Job in einem VPC Service Controls-Dienstperimeter finden Sie unter VPC Service Controls mit Batch verwenden.
Jobprobleme und Fehler
Wenn Sie Probleme mit einem Job haben, der nicht richtig ausgeführt wird oder aus unklaren Gründen fehlgeschlagen ist, kann dies an einem der Fehler in diesem Abschnitt oder an einem der Exitcodes im folgenden Abschnitt Exitcodes für Aufgabenfehler liegen.
Keine Logs in Cloud Logging
Problem
Sie müssen einen Job debuggen, aber in Cloud Logging werden keine Logs für den Job angezeigt.
Dieses Problem tritt häufig aus folgenden Gründen auf:
- Die Cloud Logging API ist für Ihr Projekt nicht aktiviert. Auch wenn Sie alles andere für die Logs eines Jobs richtig konfigurieren, werden keine Logs erstellt, wenn der Dienst für Ihr Projekt nicht aktiviert ist.
- Das Dienstkonto des Jobs hat keine Berechtigung zum Schreiben von Logs. Für einen Job können ohne ausreichende Berechtigungen keine Logs erstellt werden.
- Der Job wurde nicht für die Erstellung von Logs konfiguriert. Damit Logs in Cloud Logging erstellt werden, muss Cloud Logging für einen Job aktiviert sein. Die ausführbaren Elemente des Jobs sollten auch so konfiguriert werden, dass alle Informationen, die in Logs angezeigt werden sollen, in die Streams für Standardausgabe (stdout) und Standardfehler (stderr) geschrieben werden. Weitere Informationen finden Sie unter Jobs mithilfe von Logs analysieren.
- Aufgaben wurden nicht ausgeführt. Logs können erst erstellt werden, wenn Tasks Ressourcen zugewiesen wurden und ausgeführt werden.
- Cloud Logging wurde so konfiguriert, dass die Logs des Jobs automatisch ausgeschlossen werden. Logs aus Batch-Jobs können nicht angezeigt werden, wenn Sie Ausschlussfilter für Cloud Logging konfiguriert haben, die dazu führen, dass Logs aus Batch-Jobs ausgeschlossen werden.
Lösung
So beheben Sie das Problem:
- Prüfen Sie, ob die Logs automatisch aus Cloud Logging ausgeschlossen wurden, indem Sie alle aktuellen Ausschlussfilter für Cloud Logging deaktivieren.
- Achten Sie darauf, dass die Cloud Logging API für Ihr Projekt aktiviert ist.
- Das Dienstkonto für den Job muss die IAM-Rolle Log-Autor (
roles/logging.logWriter
) haben. Weitere Informationen finden Sie unter Batch für ein Projekt aktivieren. - Jobdetails mit der gcloud CLI oder der Batch API aufrufen
Anhand der Jobdetails können Sie nachvollziehen, warum für den Job keine Logs erstellt wurden. Sie enthalten möglicherweise auch Informationen, die Sie sich von den Logs erhofft haben. Führen Sie beispielsweise folgende Schritte aus:
- Prüfen Sie das Feld
logsPolicy
des Jobs, um zu sehen, ob das Logging aktiviert ist. - Prüfen Sie das Feld
status
des Jobs, um festzustellen, ob der Job erfolgreich abgeschlossen wurde.
- Prüfen Sie das Feld
Nachdem Sie Änderungen vorgenommen haben, erstellen Sie den Job noch einmal und warten Sie, bis er abgeschlossen ist, bevor Sie nach Logs suchen.
Keine Berichte zum Dienst-Agent
Problem
Das folgende Problem wird im Feld statusEvents
für einen Job angezeigt, der nicht ordnungsgemäß ausgeführt wird oder fehlgeschlagen ist, bevor VMs erstellt wurden:
No VM has agent reporting correctly within time window NUMBER_OF_SECONDS seconds, VM state for instance VM_NAME is TIMESTAMP,agent,start
Das Problem weist darauf hin, dass keine der VMs eines Jobs dem Batch-Dienst-Agent gemeldet wird.
Dieses Problem tritt häufig aus folgenden Gründen auf:
- Die VMs des Jobs haben nicht die erforderlichen Berechtigungen.
Die VMs eines Jobs benötigen bestimmte Berechtigungen, um ihren Status an den Batch-Dienst-Agent zu melden. Sie können diese Berechtigungen für die VMs eines Jobs erteilen, indem Sie dem Dienstkonto des Jobs die Rolle „Batch Agent Reporter“ (
roles/batch.agentReporter
) zuweisen. - Die VMs des Jobs haben Netzwerkprobleme. Die VMs eines Jobs benötigen Netzwerkzugriff, um mit dem Batch-Dienst-Agent zu kommunizieren.
- Die VMs des Jobs verwenden ein veraltetes Batch VM-Betriebssystem-Image oder ein VM-Betriebssystem-Image mit veralteter Batch-Dienst-Agent-Software. Für die VMs des Jobs ist Software im VM-Betriebssystem-Image erforderlich, die die aktuellen Abhängigkeiten für die Berichterstellung an den Batch-Dienst-Agent bereitstellt.
Lösung
So beheben Sie das Problem:
Prüfen Sie, ob die VMs des Jobs die erforderlichen Berechtigungen haben, um ihren Status an den Batch-Dienst-Agent zu melden.
- Wenn Sie das Dienstkonto des Jobs ermitteln möchten, rufen Sie die Details des Jobs mit der gcloud CLI oder der Batch API auf. Wenn kein Dienstkonto aufgeführt ist, wird standardmäßig das Compute Engine-Standarddienstkonto für den Job verwendet.
Prüfen Sie, ob das Dienstkonto des Jobs Berechtigungen für die Rolle „Batch Agent Reporter“ (
roles/batch.agentReporter
) hat. Weitere Informationen finden Sie unter Zugriff verwalten und Verwendung von Dienstkonten einschränken.Mit dem folgenden Befehl weisen Sie dem Compute Engine-Standarddienstkonto beispielsweise die erforderlichen Berechtigungen zu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --role roles/batch.agentReporter \ --member serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com
- Ersetzen Sie PROJECT_NUMBER durch Ihre Projektnummer.
- Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.
Prüfen Sie, ob die VMs des Jobs den richtigen Netzwerkzugriff haben. Weitere Informationen finden Sie unter Batch-Netzwerke – Übersicht und Häufige Netzwerkprobleme beheben.
Wenn Sie das VM-Betriebssystem-Image für den Job angegeben haben, prüfen Sie, ob es derzeit unterstützt wird.
Wenn Sie Cloud Logging für den Job aktiviert haben, können Sie dieses Problem anhand der folgenden Agent-Logs (
batch_agent_logs
) ermitteln. Weitere Informationen finden Sie unter Jobs mithilfe von Logs analysieren.Log für Fehler bei veralteter Batch-Service-Agent-Software:
rpc error: code = FailedPrecondition, desc = Invalid resource state for BATCH_AGENT_VERSION: outdated Batch agent version used.
BATCH_AGENT_VERSION ist die Softwareversion für die Kommunikation mit dem Batch-Dienst-Agent, die vom Job verwendet wird, z. B.
cloud-batch-agent_20221103.00_p00
.Log für Fehler aufgrund eines veralteten Betriebssystem-Images für Batch-VMs:
rpc error: code = FailedPrecondition, desc = Invalid resource state for BATCH_VM_OS_IMAGE_NAME: outdated Batch image version.
BATCH_VM_OS_IMAGE_NAME ist die spezifische Version eines VM-Betriebssystem-Images aus Batch, das vom Job verwendet wird, z. B.
batch-debian-11-20220909-00-p00
.
Sie können dieses Problem beheben, indem Sie ein neueres VM-Betriebssystem-Image verwenden. Wenn für den Job ein benutzerdefiniertes Image verwendet wird, erstellen Sie das benutzerdefinierte Image neu. Verwenden Sie dazu eine der neuesten Versionen eines unterstützten öffentlichen Images.
Weitere Informationen finden Sie unter Unterstützte VM-Betriebssystem-Images und VM-Betriebssystem-Images ansehen.
Erstellen Sie den Job neu.
Fehlende Ressourcenmesswerte in Cloud Monitoring
Problem
Sie möchten Ressourcenmesswerte für einen Job ansehen, aber einige oder alle erwarteten Messwerte fehlen.
Dieses Problem tritt häufig aus folgenden Gründen auf:
- Die API wurde für Ihr Projekt nicht aktiviert. Selbst wenn Sie alles andere in Ihrem Projekt richtig konfigurieren, werden Ressourcenmesswerte möglicherweise erst angezeigt, wenn die Cloud Monitoring API aktiviert ist. Für den Ops-Agent müssen Sie auch die Cloud Logging API aktivieren.
- Sie sind nicht berechtigt, die Messwerte aufzurufen. Ohne ausreichende Berechtigungen können Sie keine Messwerte aufrufen.
- Die VMs des Jobs wurden nicht ausgeführt. Messwerte können für einen Job erst erstellt werden, wenn mindestens eine der VMs des Jobs ausgeführt wird.
- Die Konfiguration oder Berechtigungen des Jobs haben keine Ops-Agent-Messwerte unterstützt. Einige Ressourcenmesswerte können nur vom Ops-Agent bereitgestellt werden. Damit Ops-Agent-Messwerte unterstützt werden, muss ein Job die Anforderungen für den Ops-Agent erfüllen, den Ops-Agent installieren und ein Dienstkonto verwenden, mit dem Messwerte in Monitoring geschrieben werden können.
- Sie müssen eine andere Methode oder einen anderen Filter verwenden, um die Messwerte aufzurufen. Bei einigen Methoden zum Aufrufen von Messwerten werden keine Messwerte für VMs angezeigt, nachdem die VMs gelöscht wurden. Außerdem werden Messwerte nicht angezeigt, wenn sie durch Filter oder den angezeigten Zeitraum ausgeschlossen werden. Außerdem haben Messwertdiagramme anpassbare Auflösungen, sodass kleine Datenmengen möglicherweise zu dünn sind, um angezeigt zu werden.
- Die Messwerte wurden gelöscht. Nach dem Löschen, das nach den Aufbewahrungszeiträumen für Monitoring automatisch erfolgt, können Sie keine Messwerte mehr aufrufen.
Lösung
Wenn nur Ops-Agent-Messwerte fehlen, versuchen Sie zuerst, das Problem so zu beheben:
- Prüfen Sie die Konfiguration des Jobs so:
- Wenn Sie die vollständigen Konfigurationsinformationen des Jobs aufrufen möchten, sehen Sie sich die Details des Jobs mit der gcloud CLI oder der Batch API an. Verwenden Sie die Ausgabe für die restlichen Schritte.
- Prüfen Sie, ob das Dienstkonto des Jobs die Berechtigungen zum Schreiben von Ops-Agent-Messwerten hat.
- Prüfen Sie, ob der Job alle Anforderungen an den Ops-Agent erfüllt.
- Prüfen Sie, ob der Job den Ops-Agenten korrekt installiert. Es ist zwar möglich, den Ops-Agent manuell in einer ausführbaren Datei zu installieren, die empfohlene Methode ist jedoch, den Ops-Agent automatisch zu installieren, indem Sie das Feld
installOpsAgent
auftrue
setzen.
- Wenn das Problem weiterhin besteht, lesen Sie in der Google Cloud Observability-Dokumentation den Abschnitt Fehlerbehebung beim Ops-Agent.
Andernfalls beheben Sie das Problem so:
- Achten Sie darauf, dass die Monitoring API für Ihr Projekt aktiviert ist:
- Prüfen Sie, ob die VMs des Jobs ausgeführt werden und die Laufzeit noch innerhalb der Aufbewahrungsfristen für die Überwachung liegt. Die Laufzeit des Jobs können Sie in den Jobdetails sehen.
- Prüfen Sie, ob es Probleme mit den Methoden gibt, die Sie zum Aufrufen von Messwerten verwenden. Gehen Sie dazu so vor:
- Wenn Sie nicht nur Messwerte für laufende Ressourcen sehen möchten, müssen Sie Messwerte mit dem Metrics Explorer oder einem benutzerdefinierten Dashboard aufrufen, das aus Metrics Explorer-Diagrammen erstellt wurde. Bei anderen Methoden, z. B. Compute Engine-Dashboards, werden keine Messwerte für gelöschte Ressourcen angezeigt.
- Achten Sie darauf, dass der Anzeigezeitraum die Laufzeit des Jobs umfasst. Achten Sie bei Diagrammen auch darauf, dass die Diagrammauflösung für Ihre Daten geeignet ist.
- Prüfen Sie, ob Filter vorhanden sind, die die Daten ausblenden.
- Wenn das Problem weiterhin besteht, lesen Sie die Seiten zur Fehlerbehebung bei Cloud Monitoring in der Google Cloud Observability-Dokumentation.
Einschränkung für externe IP-Adressen von VMs verletzt
Problem
Das folgende Problem wird im Feld statusEvents
für einen fehlgeschlagenen Job angezeigt:
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.
Dieses Problem tritt auf, weil für Ihr Projekt, Ihren Ordner oder Ihre Organisation die Einschränkung für Organisationsrichtlinien compute.vmExternalIpAccess
festgelegt ist, sodass nur VMs auf der Zulassungsliste externe IP-Adressen verwenden können.
Lösung
Erstellen Sie den Job neu und führen Sie einen der folgenden Schritte aus, um das Problem zu beheben:
- Verwenden Sie ein Projekt, das von der Einschränkung ausgenommen ist.
- Job erstellen, der externen Zugriff für alle VMs blockiert
Einschränkung für vertrauenswürdige Bilder wurde nicht eingehalten
Problem
Das folgende Problem wird im Feld statusEvents
für einen fehlgeschlagenen Job angezeigt:
Instance VM_NAME creation failed: Constraint constraints/compute.trustedImageProjects violated for project PROJECT_ID. Use of images from project batch-custom-image is prohibited.
Lösung
Dieses Problem tritt auf, weil in Ihrem Projekt die Richtlinienbeschränkung für vertrauenswürdige Images (compute.trustedImageProjects
) festgelegt ist, sodass Images aus Batch, die sich im Projekt batch-custom-image
befinden, nicht zulässig sind.
Führen Sie mindestens einen der folgenden Schritte aus, um das Problem zu beheben:
- Erstellen Sie den Job neu, um ein Betriebssystem-Image für die VM anzugeben, das bereits durch die Richtlinienbeschränkung für vertrauenswürdige Images zugelassen ist.
- Bitten Sie Ihren Administrator, die Einschränkung für die Richtlinie für vertrauenswürdige Images so zu ändern, dass VM-Betriebssystem-Images aus dem Image-Projekt
batch-custom-image
zugelassen werden. Eine Anleitung finden Sie unter Zugriff auf VM-Betriebssystem-Images für Batch steuern.
Fehler bei Job mit Instanzvorlage
Problem
Das folgende Problem wird im Feld statusEvents
für einen fehlgeschlagenen Job angezeigt, der eine Instanzvorlage verwendet:
INVALID_FIELD_VALUE,BACKEND_ERROR
Dieses Problem tritt aufgrund unklarer Probleme mit der Instanzvorlage des Jobs auf.
Lösung
So können Sie das Problem weiter untersuchen:
- Erstellen Sie eine MIG mit der Instanzvorlage und prüfen Sie, ob Fehler mit weiteren Details auftreten.
Optional: Weitere Informationen finden Sie im Vorgang mit langer Ausführungszeit, mit dem die MIG in der Google Cloud -Konsole erstellt wird.
Exit-Codes für Taskfehler
Wenn eine bestimmte Aufgabe in einem Job fehlschlägt, gibt die Aufgabe einen Exit-Code ungleich null zurück.
Je nachdem, wie Sie das Feld ignoreExitStatus
konfigurieren, kann eine fehlgeschlagene Aufgabe dazu führen, dass ein Job fehlschlägt.
Zusätzlich zu allen Exit-Codes, die Sie in einem ausführbaren Programm definieren, hat ein Batch mehrere reservierte Exit-Codes, darunter die folgenden.
Vorzeitiges Beenden von VMs (50001)
Problem
Das folgende Problem wird im Feld statusEvents
für einen Job angezeigt:
Task state is updated from PRE-STATE to FAILED on zones/ZONE/instances/INSTANCE_ID due to Spot Preemption with exit code 50001.
Dieses Problem tritt auf, wenn eine Spot-VM für den Job während der Laufzeit vorzeitig beendet wird.
Lösung
Führen Sie einen der folgenden Schritte aus, um das Problem zu beheben:
- Wiederholen Sie die Aufgabe entweder mit automatischen Wiederholungen von Aufgaben oder indem Sie den Job manuell noch einmal ausführen.
- Wenn Sie sichergehen möchten, dass keine vorzeitige Beendigung erfolgt, verwenden Sie stattdessen VMs mit dem Standardbereitstellungsmodell.
Zeitüberschreitung bei VM-Berichten (50002)
Problem
Das folgende Problem wird im Feld statusEvents
für einen Job angezeigt:
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.
Dieses Problem tritt auf, wenn im Backend ein Zeitlimit überschritten wird, wodurch Batch keine Updates mehr von einer VM für den Job empfängt. Leider können viele Hardware- oder Softwarefehler dazu führen, dass eine VM nicht mehr reagiert. Eine VM kann beispielsweise aufgrund eines vorübergehenden Hostereignisses oder unzureichender Ressourcen abstürzen.
Lösung
So beheben Sie das Problem:
- Wenn das Problem vorübergehend ist und sich von selbst behebt, können Sie die Aufgabe entweder mit automatischen Wiederholungsversuchen oder durch manuelles erneutes Ausführen des Jobs wiederholen.
Wenn das Problem weiterhin besteht, ermitteln Sie die Ursache dafür, dass die VM nicht reagiert, und beheben Sie das Problem. Führen Sie dazu einen oder mehrere der folgenden Schritte aus:
Empfohlen:Support über Google Cloud Support oder das Batch-Label in Cloud-Foren erhalten.
Versuchen Sie, das Problem selbst zu identifizieren und zu beheben. Wenn Sie sich beispielsweise mit Compute Engine auskennen, können Sie die VMs des Jobs so beheben:
So ermitteln Sie die Namen der VMs Ihres Jobs:
- Logs für den Job ansehen
- Logs filtern nach Einträgen, die den Begriff
report agent state:
enthalten. Sehen Sie sich die Logs an, um die VM für jeden Versuch jeder Aufgabe zu ermitteln. Jeder Logeintrag ähnelt dem folgenden, in dem es einen
instance:
-Ausdruck und einen oder mehreretask_id:
-Ausdrücke gibt.report agent state: ... instance:"INSTANCE_NAME" ... task_id:"task/JOB_UID-group0-TASK_INDEX/TASK_RETRIES/0 ..."
Dieses Log enthält die folgenden Werte:
INSTANCE_NAME
: der Name der VMJOB_UID
: Die eindeutige ID (UID) des Jobs.TASK_INDEX
: Der Index der Aufgabe.TASK_RETRIES
: Der Versuch der Aufgabe, die auf dieser VM ausgeführt wurde, formatiert als Anzahl der Wiederholungsversuche. Für den ersten Versuch einer Aufgabe lautet dieser Wert beispielsweise0
. Jede Aufgabe wird nur einmal ausgeführt, sofern Sie automatische Wiederholungsversuche für Aufgaben nicht aktivieren.
Verwenden Sie die Compute Engine-Dokumentation, um Probleme mit den VMs Ihres Jobs zu beheben. Beispiele finden Sie unter Fehlerbehebung bei Neustarts und Neustarts von VMs und Fehlerbehebung beim VM-Startvorgang.
VM wurde während der Ausführung neu gestartet (50003)
Problem
Das folgende Problem wird im Feld statusEvents
für einen Job angezeigt:
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.
Dieses Problem tritt auf, wenn eine VM für einen Job während der Laufzeit unerwartet neu gestartet wird.
Lösung
Um dieses Problem zu beheben, wiederholen Sie die Aufgabe entweder mit automatischen Wiederholungsversuchen oder führen Sie den Job manuell noch einmal aus.
VM und Aufgabe reagieren nicht (50004)
Problem
Das folgende Problem wird im Feld statusEvents
für einen Job angezeigt:
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.
Dieses Problem tritt auf, wenn eine Aufgabe das Zeitlimit für die Reaktionsfähigkeit erreicht und nicht abgebrochen werden kann.
Lösung
Um dieses Problem zu beheben, wiederholen Sie die Aufgabe entweder mit automatischen Wiederholungsversuchen oder führen Sie den Job manuell noch einmal aus.
Die Aufgabe überschreitet die maximale Laufzeit (50005)
Problem
Das folgende Problem wird im Feld statusEvents
für einen Job angezeigt:
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.
Dieses Problem tritt in den folgenden Fällen auf:
- Die Laufzeit einer Aufgabe überschreitet das im Feld
maxRunDuration
angegebene Zeitlimit. - Die Laufzeit eines ausführbaren Programms überschreitet das im Feld
timeout
angegebene Zeitlimit.
Um herauszufinden, welches Zeitlimit überschritten wurde, rufen Sie die Logs für den Job auf und suchen Sie nach einem Log, in dem der Exitcode 50005
erwähnt wird. Das Feld textPayload
in diesem Log gibt an, wo und wann das Zeitlimit überschritten wurde.
Lösung
Um das Problem zu beheben, versuchen Sie, die Gesamtlaufzeit zu ermitteln, die für die Aufgabe oder das ausführbare Element erforderlich ist, das das Zeitlimit überschritten hat. Führen Sie anschließend einen der folgenden Schritte aus:
Wenn dieser Fehler nur gelegentlich auftritt, z. B. bei einer Aufgabe oder einem ausführbaren Element mit einer inkonsistenten Laufzeit, können Sie versuchen, den Job neu zu erstellen und ihn so zu konfigurieren, dass Aufgabenwiederholungen automatisiert werden, um die Erfolgsrate zu erhöhen.
Wenn die Aufgabe oder das Runnable jedoch regelmäßig und absichtlich mehr Zeit für die Ausführung benötigt, als das aktuelle Zeitlimit zulässt, legen Sie ein längeres Zeitlimit fest.
VM während der Ausführung neu erstellt (50006)
Problem
Das folgende Problem wird im Feld statusEvents
für einen Job angezeigt:
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.
Dieses Problem tritt auf, wenn eine VM für einen Job während der Laufzeit unerwartet neu erstellt wird.
Lösung
Um dieses Problem zu beheben, wiederholen Sie die Aufgabe entweder mit automatischen Wiederholungsversuchen oder führen Sie den Job manuell noch einmal aus.