Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Auf dieser Seite sind bekannte Probleme mit Managed Airflow aufgeführt. Informationen zu Fehlerbehebungen finden Sie in den Versionshinweisen.
Der erste DAG wird für eine hochgeladene DAG-Datei mit mehreren fehlgeschlagenen Aufgaben ausgeführt.
Wenn Sie eine DAG-Datei hochladen, schlagen manchmal die ersten Aufgaben des ersten DAG mit dem Fehler Unable to read remote log... fehl. Dieses Problem tritt auf, weil die DAG-Datei zwischen dem Bucket Ihrer Umgebung, den Airflow-Workern und den Airflow-Planern Ihrer Umgebung synchronisiert wird. Wenn der Planer die DAG-Datei abruft und sie für die Ausführung durch einen Worker plant und der Worker die DAG-Datei noch nicht hat, schlägt die Ausführung der Aufgabe fehl.
Um dieses Problem zu beheben, sind Umgebungen mit Airflow 2 standardmäßig so konfiguriert, dass zwei Wiederholungsversuche für eine fehlgeschlagene Aufgabe ausgeführt werden. Wenn eine Aufgabe fehlschlägt, wird sie zweimal im Abstand von 5 Minuten wiederholt.
Managed Airflow sollte nicht von der Apache Log4j 2-Sicherheitslücke (CVE-2021-44228) betroffen sein.
Als Reaktion auf die Apache Log4j 2-Sicherheitslücke (CVE-2021-44228) hat Managed Airflow eine detaillierte Untersuchung durchgeführt und wir glauben, dass Managed Airflow nicht anfällig für diesen Exploit ist.
Die Airflow-Benutzeroberfläche lädt ein geändertes Plug-in manchmal nicht neu.
Wenn ein Plug-in aus vielen Dateien besteht, die andere Module importieren, kann die Airflow-UI möglicherweise nicht erkennen, dass ein Plug-in neu geladen werden muss. Starten Sie in diesem Fall den Airflow-Webserver Ihrer Umgebung neu.
Fehler 504 beim Zugriff auf die Airflow-Benutzeroberfläche
Beim Zugriff auf die Airflow-Benutzeroberfläche kann der Fehler 504 Gateway Timeout auftreten. Dieser Fehler kann mehrere Ursachen haben:
Vorübergehendes Kommunikationsproblem. Versuchen Sie in diesem Fall, später auf die Airflow-Benutzeroberfläche zuzugreifen. Sie können auch den Airflow-Webserver neu starten.
(Nur Managed Airflow (Gen 3)) Verbindungsproblem. Wenn die Airflow-UI dauerhaft nicht verfügbar ist und Zeitüberschreitungs- oder 504-Fehler generiert werden, prüfen Sie, ob Ihre Umgebung auf
*.composer.googleusercontent.comzugreifen kann.(Nur Managed Airflow (Gen 2)) Verbindungsproblem. Wenn die Airflow-UI dauerhaft nicht verfügbar ist und Zeitüberschreitungs- oder 504-Fehler generiert werden, prüfen Sie, ob Ihre Umgebung auf
*.composer.cloud.google.comzugreifen kann. Wenn Sie den privater Google-Zugriff verwenden und Traffic über virtuelleprivate.googleapis.com-IP-Adressen senden oder VPC Service Controls verwenden und Traffic über virtuellerestricted.googleapis.com-IP-Adressen senden, muss Ihr Cloud DNS auch für*.composer.cloud.google.com-Domainnamen konfiguriert sein.Airflow-Webserver reagiert nicht. Wenn der Fehler 504 weiterhin auftritt, Sie aber zu bestimmten Zeiten auf die Airflow-Benutzeroberfläche zugreifen können, reagiert der Airflow-Webserver möglicherweise nicht, weil er überlastet ist. Versuchen Sie, die Skalierungs- und Leistungsparameter des Webservers zu erhöhen.
Fehler 502 beim Zugriff auf die Airflow-Benutzeroberfläche
Der Fehler 502 Internal server exception gibt an, dass die Airflow-Benutzeroberfläche eingehende Anfragen nicht verarbeiten kann. Dieser Fehler kann mehrere Ursachen haben:
Vorübergehendes Kommunikationsproblem. Versuchen Sie später, auf die Airflow-Benutzeroberfläche zuzugreifen.
Der Webserver konnte nicht gestartet werden. Damit der Webserver gestartet werden kann, müssen zuerst die Konfigurationsdateien synchronisiert werden. Prüfen Sie die Webserver-Logs auf Logeinträge, die in etwa so aussehen:
GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/airflow.cfg /home/airflow/gcs/airflow.cfg.tmpoderGCS sync exited with 1: gcloud storage cp gs://<bucket-name>/env_var.json.cfg /home/airflow/gcs/env_var.json.tmp. Wenn Sie diese Fehler sehen, prüfen Sie, ob die in den Fehlermeldungen genannten Dateien noch im Bucket der Umgebung vorhanden sind.Wenn sie versehentlich entfernt wurden (z. B. weil eine Aufbewahrungsrichtlinie konfiguriert wurde), können Sie sie wiederherstellen:
Legen Sie eine neue Umgebungsvariable in Ihrer Umgebung fest. Sie können einen beliebigen Variablennamen und -wert verwenden.
Airflow-Konfigurationsoption überschreiben. Sie können eine nicht vorhandene Airflow-Konfigurationsoption verwenden.
Fehler 500 beim Zugriff auf die Airflow-Benutzeroberfläche nach dem Überschreiben von [webserver]analytics_tool
Wenn Sie in Umgebungen mit Airflow 2 die Airflow-Konfigurationsoption [webserver]analytics_tool überschreiben, um anonyme Nutzungsdaten der Airflow-Benutzeroberfläche an einen Analysedienst (z. B. Google Analytics, Segment, MetaRouter oder Matomo) weiterzuleiten, kann der Zugriff auf die Airflow-Benutzeroberfläche nach dem erfolgreichen Umgebungsupdate eine (500) Internal Server Error-Antwort mit einem der folgenden Fehler in den Airflow-Server-Logs zurückgeben:
airflow.exceptions.AirflowConfigException: section/key [webserver/analytics_id] not found in config
airflow.exceptions.AirflowConfigException: section/key [webserver/analytics_url] not found in config
Wenn [webserver]analytics_tool in Airflow 2 festgelegt ist, müssen für den Airflow-Webserver auch die zugehörigen Analyseoptionen im Abschnitt [webserver] definiert werden, wenn die Airflow-UI gerendert wird.
In Airflow 3 werden die Konfigurationsoptionen [webserver]analytics_tool, [webserver]analytics_id und [webserver]analytics_url entfernt.
Lösungen:
- Entfernen Sie die Überschreibung für die Airflow-Konfigurationsoption
[webserver]analytics_tooloder - Geben Sie alle erforderlichen Airflow-Konfigurationsoptionen zusammen an:
[webserver]analytics_tool[webserver]analytics_id[webserver]analytics_url(erforderlich in Airflow 2.9 und höher, auch wenn Ihr Analysetool keine benutzerdefinierte URL verwendet)
Wenn Sie den Mauszeiger in der Strukturansicht auf eine Aufgabeninstanz bewegen, wird ein nicht abgefangener TypeError ausgegeben.
In Airflow 2 funktioniert die Strukturansicht in der Airflow-UI manchmal nicht richtig, wenn eine nicht standardmäßige Zeitzone verwendet wird. Als Behelfslösung für dieses Problem können Sie die Zeitzone explizit in der Airflow-Benutzeroberfläche konfigurieren.
Leere Ordner in Scheduler und Workers
Managed Airflow entfernt leere Ordner nicht aktiv aus Airflow-Workern und -Planern. Solche Entitäten können im Rahmen der Synchronisierung des Umgebungs-Buckets erstellt werden, wenn diese Ordner im Bucket vorhanden waren und schließlich entfernt wurden.
Empfehlung: Passen Sie Ihre DAGs so an, dass solche leeren Ordner übersprungen werden.
Solche Entitäten werden schließlich aus den lokalen Speichern von Airflow-Planern und -Workern entfernt, wenn diese Komponenten neu gestartet werden (z. B. aufgrund von Skalierungs- oder Wartungsvorgängen im Cluster Ihrer Umgebung).
Unterstützung für Kerberos
Managed Airflow unterstützt die Airflow-Kerberos-Konfiguration nicht.
Unterstützung für Compute-Klassen in Managed Airflow (Gen 2) und Managed Airflow (Gen 3)
Managed Airflow (Gen 3) und Managed Airflow (Gen 2) unterstützen nur die Compute-Klasse für allgemeine Zwecke. Das bedeutet, dass Pods, die andere Compute-Klassen (z. B. Balanced oder Scale-Out) anfordern, nicht ausgeführt werden können.
Mit der Klasse Für allgemeine Zwecke können Pods ausgeführt werden, die bis zu 110 GB Arbeitsspeicher und bis zu 30 CPUs anfordern (wie unter Maximale Anfragen für Compute-Klassen beschrieben).
Wenn Sie eine ARM-basierte Architektur verwenden möchten oder mehr CPU und Arbeitsspeicher benötigen, müssen Sie eine andere Compute-Klasse verwenden, die in Managed Airflow-Clustern (Gen 3) und Managed Airflow-Clustern (Gen 2) nicht unterstützt wird.
Empfehlung: Verwenden Sie GKEStartPodOperator, um Kubernetes-Pods auf einem anderen Cluster auszuführen, der die ausgewählte Compute-Klasse unterstützt. Wenn Sie benutzerdefinierte Pods ausführen, die eine andere Compute-Klasse erfordern, müssen diese ebenfalls auf einem nicht verwalteten Airflow-Cluster ausgeführt werden.
Es ist nicht möglich, den Cloud SQL-Speicher zu reduzieren
Managed Airflow verwendet Cloud SQL zum Ausführen der Airflow-Datenbank. Im Laufe der Zeit kann der Speicherplatz für die Cloud SQL-Instanz zunehmen, da das Laufwerk so skaliert wird, dass es die von Cloud SQL-Vorgängen gespeicherten Daten aufnehmen kann, wenn die Airflow-Datenbank wächst.
Es ist nicht möglich, die Größe des Cloud SQL-Laufwerks zu verringern.
Wenn Sie die kleinste Cloud SQL-Laufwerkgröße verwenden möchten, können Sie als Behelfslösung Managed Airflow-Umgebungen mit Snapshots neu erstellen.
Der Messwert für die Datenbank-Speicherplatznutzung wird nach dem Entfernen von Datensätzen aus Cloud SQL nicht reduziert
Relationale Datenbanken wie Postgres oder MySQL entfernen Zeilen nicht physisch, wenn sie gelöscht oder aktualisiert werden. Stattdessen werden sie als „tote Tupel“ markiert, um die Datenkonsistenz zu wahren und das Blockieren gleichzeitiger Transaktionen zu vermeiden.
Sowohl MySQL als auch Postgres implementieren Mechanismen, um Speicherplatz nach gelöschten Datensätzen freizugeben.
Es ist zwar möglich, die Datenbank zu zwingen, ungenutzten Speicherplatz freizugeben, aber dies ist ein ressourcenintensiver Vorgang, der die Datenbank zusätzlich sperrt und Managed Airflow nicht verfügbar macht. Daher wird empfohlen, sich auf die integrierten Mechanismen zur Freigabe des nicht verwendeten Speicherplatzes zu verlassen.
Zugriff blockiert: Autorisierungsfehler
Wenn ein Nutzer von diesem Problem betroffen ist, enthält das Dialogfeld Zugriff blockiert: Autorisierungsfehler die Meldung Error 400: admin_policy_enforced.
Wenn die Option API-Steuerung > Nicht konfigurierte Drittanbieter-Apps > Nutzer dürfen nicht auf Drittanbieter-Apps zugreifen in Google Workspace aktiviert ist und Apache Airflow in der Managed Airflow-Anwendung nicht explizit zugelassen ist, können Nutzer nicht auf die Airflow-Benutzeroberfläche zugreifen, es sei denn, sie lassen die Anwendung explizit zu.
Führen Sie die Schritte unter Zugriff auf die Airflow-Benutzeroberfläche in Google Workspace zulassen aus, um den Zugriff zu erlauben.
Anmeldeschleife beim Zugriff auf die Airflow-Benutzeroberfläche
Dieses Problem kann folgende Ursachen haben:
Wenn kontextsensitive Zugriffsberechtigungen von Chrome Enterprise Premium mit Zugriffsebenen verwendet werden, die auf Geräteattributen basieren, und die Apache Airflow-Anwendung in Managed Airflow nicht ausgenommen ist, kann aufgrund einer Anmeldeschleife nicht auf die Airflow-Benutzeroberfläche zugegriffen werden. Führen Sie die Schritte unter Zugriff auf die Airflow-Benutzeroberfläche in kontextsensitiven Zugriffsberechtigungen zulassen aus, um den Zugriff zu erlauben.
Wenn Regeln für eingehenden Traffic in einem VPC Service Controls-Perimeter konfiguriert sind, der das Projekt schützt, und die Regel für eingehenden Traffic, die den Zugriff auf den Managed Airflow-Dienst ermöglicht, den Identitätstyp
ANY_SERVICE_ACCOUNToderANY_USER_ACCOUNTverwendet, können Nutzer nicht auf die Airflow-Benutzeroberfläche zugreifen und landen in einer Anmeldeschleife. Weitere Informationen zur Behebung dieses Problems finden Sie unter Zugriff auf die Airflow-Benutzeroberfläche in Regeln für eingehenden Traffic von VPC Service Controls zulassen.
Der Ordner „/data“ ist auf dem Airflow-Webserver nicht verfügbar
In Managed Airflow (Gen 2) und Managed Airflow (Gen 3) ist der Airflow-Webserver hauptsächlich als schreibgeschützte Komponente gedacht. Managed Airflow synchronisiert den Ordner data/ nicht mit dieser Komponente.
Manchmal möchten Sie gängige Dateien für alle Airflow-Komponenten freigeben, einschließlich des Airflow-Webservers.
Lösung:
Verpacken Sie die Dateien, die mit dem Webserver geteilt werden sollen, in ein PYPI-Modul und installieren Sie es als reguläres PYPI-Paket. Nachdem das PYPI-Modul in der Umgebung installiert wurde, werden die Dateien den Images von Airflow-Komponenten hinzugefügt und stehen ihnen zur Verfügung.
Fügen Sie dem Ordner
plugins/Dateien hinzu. Dieser Ordner wird mit dem Airflow-Webserver synchronisiert.
Nicht kontinuierliche DAG-Parseverarbeitungszeiten und DAG-Bag-Größendiagramme im Monitoring
Nicht kontinuierliche DAG-Parseverarbeitungszeiten und Diagramme zur DAG-Bag-Größe im Monitoring-Dashboard weisen auf Probleme mit langen DAG-Parseverarbeitungszeiten (mehr als 5 Minuten) hin.
Lösung: Wir empfehlen, die Gesamtzeit für das DAG-Parsing unter 5 Minuten zu halten. Folgen Sie den Richtlinien zum Schreiben von DAGs, um die Zeit für das Parsen von DAGs zu verkürzen.
Aufgabenlogs werden mit Verzögerung angezeigt
Symptom:
- In Managed Airflow (Gen 3) werden Airflow-Tasklogs nicht sofort angezeigt, sondern sind um einige Minuten verzögert.
- Möglicherweise finden Sie
Logs not found for Cloud Logging filter-Nachrichten in den Airflow-Logs.
Ursache:
Wenn in Ihrer Umgebung eine große Anzahl von Aufgaben gleichzeitig ausgeführt wird, kann es zu Verzögerungen bei den Aufgabenlogs kommen, da die Infrastrukturgröße der Umgebung nicht ausreicht, um alle Logs schnell genug zu verarbeiten.
Lösungen:
- Erwägen Sie, die Infrastrukturgröße der Umgebung zu erhöhen, um die Leistung zu steigern.
- Verteilen Sie DAG-Ausführungen über die Zeit, damit Aufgaben nicht gleichzeitig ausgeführt werden.
Längere Startzeiten für KubernetesPodOperator und KubernetesExecutor
Bei Pods, die mit KubernetesPodOperator erstellt wurden, und Aufgaben, die mit KubernetesExecutor ausgeführt werden, verlängern sich die Startzeiten. Das Managed Airflow-Team arbeitet an einer Lösung und wird bekannt geben, wenn das Problem behoben ist.
Behelfslösungen:
- Pods mit mehr CPU starten.
- Optimieren Sie Bilder nach Möglichkeit (weniger Ebenen, kleinere Größe).
Die Umgebung befindet sich im Fehlerstatus, nachdem das Rechnungskonto des Projekts gelöscht oder deaktiviert oder die Cloud Composer API deaktiviert wurde.
Managed Airflow-Umgebungen, die von diesen Problemen betroffen sind, können nicht wiederhergestellt werden:
- Nachdem das Rechnungskonto des Projekts gelöscht oder deaktiviert wurde, auch wenn später ein anderes Konto verknüpft wurde.
- Nachdem die Cloud Composer API im Projekt deaktiviert wurde, auch wenn sie später wieder aktiviert wurde.
Sie können Folgendes tun, um das Problem zu beheben:
Sie können weiterhin auf Daten zugreifen, die in den Buckets Ihrer Umgebung gespeichert sind, aber die Umgebungen selbst sind nicht mehr nutzbar. Sie können eine neue Managed Airflow-Umgebung erstellen und dann Ihre DAGs und Daten übertragen.
Wenn Sie Vorgänge ausführen möchten, die Ihre Umgebungen unwiederbringlich machen, sollten Sie Ihre Daten sichern, z. B. durch Erstellen eines Snapshots einer Umgebung. So können Sie eine weitere Umgebung erstellen und ihre Daten übertragen, indem Sie diesen Snapshot laden.
Logs für Airflow-Aufgaben werden nicht erfasst, wenn [core]execute_tasks_new_python_interpreter auf „True“ gesetzt ist
Managed Airflow erfasst keine Logs für Airflow-Aufgaben, wenn die Airflow-Konfigurationsoption [core]execute_tasks_new_python_interpreter auf True gesetzt ist.
Mögliche Lösung:
- Entfernen Sie die Überschreibung für diese Konfigurationsoption oder legen Sie den Wert auf
Falsefest.
Fehler beim Entfernen des Netzwerkanhangs, wenn eine Umgebung gelöscht wird
Wenn mehrere Umgebungen, die denselben Netzwerkanhang verwenden, gleichzeitig gelöscht werden, schlagen einige Löschvorgänge mit einem Fehler fehl.
Symptome:
Der folgende Fehler wird generiert:
Got error while removing Network Attachment: <error code>
Der gemeldete Fehlercode kann Bad request: <resource> is not ready oder Precondition failed: Invalid fingerprint sein.
Mögliche Problemumgehungen:
Löschen Sie Umgebungen, die denselben Netzwerkanhang verwenden, nacheinander.
Deaktivieren Sie die Verbindung zu einem VPC-Netzwerk für Ihre Umgebungen, bevor Sie sie löschen. Wir empfehlen diese Problemumgehung für das automatisierte Löschen von Umgebungen.
Beeinträchtigte Umgebungsleistung in mehreren google-api-core-Paketversionen
Versionen von 2.28.0 bis 2.30.2
Die vorinstallierten google-api-core-Paketversionen von 2.28.0 bis 2.30.2 können zu einer verminderten Leistung der Umgebung führen. Dies kann dazu führen, dass die Ausführung einer Aufgabe länger dauert und es länger dauert, eine Aufgabe vom Status „In der Warteschlange“ in den Status „Wird ausgeführt“ zu verschieben.
Betroffene Managed Airflow (Gen 3)-Builds:
- composer-3-airflow-3.1.7-build.0 bis composer-3-airflow-3.1.7-build.5
- composer-3-airflow-3.1.0-build.5 bis composer-3-airflow-3.1.0-build.10
- composer-3-airflow-2.11.1-build.0
- composer-3-airflow-2.10.5-build.22 bis composer-3-airflow-2.10.5-build.33
- composer-3-airflow-2.9.3-build.42 bis composer-3-airflow-2.9.3-build.53
Betroffene Managed Airflow (Gen 2)-Builds:
- composer-2.16.10-airflow-2.11.1
- composer-2.16.0-airflow-2.10.5 bis composer-2.16.10-airflow-2.10.5
- composer-2.16.0-airflow-2.9.3 zu composer-2.16.10-airflow-2.9.3
Führen Sie ein Upgrade Ihrer Umgebung auf einen der folgenden Builds durch, die die vorinstallierte google-api-core-Version 2.27.0 enthalten und nicht von diesem Problem betroffen sind:
- composer-3-airflow-2.11.1-build.1
- composer-3-airflow-2.10.5-build.34
- composer-3-airflow-2.9.3-build.54
- composer-2.16.11-airflow-2.11.1
- composer-2.16.11-airflow-2.10.5
- composer-2.16.11-airflow-2.9.3
Alternativ können Sie ein Upgrade auf ein Image mit google-api-core 2.43.1 oder höher ausführen oder manuell eine kompatible Version installieren.
In Python 3.11 verursachen die google-api-core-Versionen 2.30.3 bis 2.43.0 ab dem 24. Oktober 2026 ein separates Leistungsproblem. Wenn in Ihrer Umgebung Python 3.11 ausgeführt wird, wenden Sie eine der Problemumgehungen an, die unter Versionen von 2.30.3 bis 2.43.0 in Python 3.11 aufgeführt sind.
Versionen von 2.30.3 bis 2.43.0 in Python 3.11
Ab dem 24. Oktober 2026 führen die google-api-core-Paketversionen 2.30.3 bis 2.43.0 eine Prüfung auf die Einstellung von Python 3.11 durch. Dabei werden die Metadaten installierter Pakete gescannt, wenn eine Google Cloud Clientbibliothek in einen neuen Python-Unterprozess importiert wird.
In Managed Airflow-Umgebungen, in denen Python 3.11 ausgeführt wird, kann dieses Verhalten die Leistung beeinträchtigen. Dieses Problem ist in Umgebungen mit vielen DAGs, häufigen kurz laufenden Aufgaben oder aktivierter Datenherkunftsintegration schwerwiegender.
Die Symptome sind folgende:
- Längere DAG-Parsing-Zeiten und höhere CPU-Auslastung auf Airflow-DAG-Prozessoren.
- Längere Taskausführungszeiten und höhere CPU-Auslastung bei Airflow-Workern.
- Häufige
FutureWarning-Logeinträge vongoogle/api_core/_python_version_support.py, die darauf hinweisen, dass der Support für Python 3.11 am 24.10.2027 endet.
Dieses Problem betrifft alle Python 3.11-Umgebungen, in denen die google-api-core-Version 2.30.3 bis 2.43.0 entweder vorinstalliert oder manuell installiert ist, einschließlich der folgenden Builds.
Dieses Problem betrifft die folgenden Managed Airflow (Gen 3)-Builds:
- composer-3-airflow-3.3.1-build.0 bis composer-3-airflow-3.3.1-build.5
- composer-3-airflow-3.2.2-build.0 bis composer-3-airflow-3.2.2-build.9
- composer-3-airflow-3.1.8-build.0 bis composer-3-airflow-3.1.8-build.4
- composer-3-airflow-3.1.7-build.7 bis composer-3-airflow-3.1.7-build.13
- composer-3-airflow-2.11.1-build.3 bis composer-3-airflow-2.11.1-build.22
- composer-3-airflow-2.10.5-build.36 bis composer-3-airflow-2.10.5-build.52
Betroffene Managed Airflow (Gen 2)-Builds:
- composer-2.17.0-airflow-2.11.1 bis composer-2.17.16-airflow-2.11.1
- composer-2.17.0-airflow-2.10.5 bis composer-2.17.13-airflow-2.10.5
Problemumgehungen:
Wählen Sie je nach Image-Version Ihrer Umgebung eine der folgenden Optionen aus:
Option 1 Nur kompatible Managed Airflow-Builds (Gen 3) mit Airflow 3: Installieren Sie das PyPI-Paket
google-api-coremit der Versionsbeschränkung>=2.43.1.Kompatible Managed Airflow-Builds (Gen 3):
- composer-3-airflow-3.3.1-build.0 bis composer-3-airflow-3.3.1-build.5
- composer-3-airflow-3.2.2-build.1 bis composer-3-airflow-3.2.2-build.9
- composer-3-airflow-3.1.8-build.3 bis composer-3-airflow-3.1.8-build.4
Verwenden Sie diese Option nicht für Airflow 2-Builds oder frühere Airflow 3-Builds, einschließlich
composer-3-airflow-3.2.2-build.0undcomposer-3-airflow-3.1.8-build.0bisbuild.2. In diesen Builds verursachtgoogle-api-core2.43.1 Abhängigkeitskonflikte, daopentelemetry-api>=1.44.0erforderlich ist. Verwenden Sie für diese Builds Option 2.Option 2. Alle betroffenen Managed Airflow (Gen 3)- und Managed Airflow (Gen 2)-Builds: Wenden Sie einen
sitecustomize.py-Laufzeitpatch an.Laden Sie sitecustomize.py von GitHub herunter.
Laden Sie
sitecustomize.pyin den Ordnerdags/patchesim Bucket Ihrer Umgebung hoch.Setzen Sie die Umgebungsvariable
PYTHONPATHauf/home/airflow/gcs/dags/patches.Wenn
PYTHONPATHbereits festgelegt ist, stellen Sie/home/airflow/gcs/dags/patches:dem vorhandenen Wert voran. Beispiel:/home/airflow/gcs/dags/patches:PREVIOUS_PYTHONPATH_VALUE
Bereinigung nach einem Upgrade: In zukünftigen Managed Airflow-Releases wird die
google-api-core-Paketversion 2.43.1 oder höher vorinstalliert sein. Nach dem Upgrade auf ein Image mitgoogle-api-core2.43.1 oder höher können Sie die Überschreibung vonPYTHONPATHentfernen unddags/patches/sitecustomize.pylöschen.
TI befindet sich nicht mehr im Status „Wird ausgeführt“, die Aufgabe sollte beendet werden und es treten „Task Not Found“-Fehler in Airflow 3 auf
In Airflow 3 gibt es zwei Probleme, bei denen der Planer beim Neustart den Aufgabenstatus verliert:
409-Konfliktstatus: Eine Race-Bedingung in Schedulern führt zu einer doppelten Planung von Aufgabeninstanzen (#59378, behoben in #60330).
Dieses Problem wurde in Airflow 3.2.2 behoben.
Fehler „404 Nicht gefunden“: Airflow-Worker verlieren während eines regulären Neustarts der Planerschleife den Überblick über Aufgabeninstanzen. Dies geschieht, nachdem der Planer
[scheduler]num_runserreicht hat. Dadurch werden die vorhandenen Aufgabeninstanz-IDs geändert und es werden nachfolgende 404-Fehler von einem Worker generiert, der die Änderung nicht kennt (#53140, #60330, behoben in #61631).Dieses Problem wurde in Airflow 3.3.1 behoben.
Symptome
409 Conflict: Der Status der Bereinigung verwaister Aufgaben eines neu gestarteten Schedulers markiert aktive Aufgaben als
FAILED, was dazu führt, dass die Worker abnormal beendet werden:Server indicated the task shouldn't be running anymore [supervisor] detail={'detail': {'reason': 'not_running', 'message': 'TI is no longer in the running state and task should terminate', 'current_state': 'scheduled'}} status_code=409 ti_id=UUID('...')404 Nicht gefunden: Ein neu gestarteter Planer verliert Aufgabenstatus und schlägt bei aktiven Worker-Pulsprüfungen fehl:
Server indicated the task shouldn't be running anymore [detail={'detail': {'reason': 'not_found', 'message': 'Task Instance not found'}}] [status_code=404] [ti_id=...]
Lösung:
- Beide Probleme wurden in Airflow-Version 3.3.1 und höher behoben. Aktualisieren Sie Ihre Umgebung auf eine Version, die Airflow 3.3.1 verwendet.
Mögliche Problemumgehungen:
In Airflow-Versionen vor 3.3.1 ist es nicht möglich, das Problem vollständig zu beheben. Jedes externe Ereignis, das einen einzelnen Planer unerwartet neu startet, löst 404 und 409 aus (in Airflow-Versionen vor 3.2.2). Beispiele für solche Ereignisse sind automatische Upgrades von Knoten im Cluster Ihrer Umgebung, OOM-Bedingungen in Pods oder ein hoher Arbeitsspeicher- und CPU-Verbrauch durch Planer.
Wenn Sie Ihre Umgebung auf einen Planer herunterskalieren und die Konfigurationsoption
[scheduler]num_runsauf-1setzen, wird die Ursache von Race-Bedingungen in Planern minimiert.In einer Umgebung mit extrem hoher Ausfallsicherheit (Hochverfügbarkeit) ist es nicht möglich, die Anzahl der Planer auf einen zu reduzieren. Sie können
[scheduler]num_runsweiterhin auf-1setzen.Achten Sie darauf, dass der Arbeitsspeicher- und CPU-Verbrauch des Schedulers innerhalb der verfügbaren Ressourcenlimits liegt.
Nächste Schritte
- Fehlerbehebung beim Erstellen der Umgebung
- Fehlerbehebung bei DAGs
- Fehlerbehebung bei Airflow Scheduler-Problemen