Masalah umum

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

Halaman ini mencantumkan masalah umum Managed Airflow. Untuk mengetahui informasi tentang perbaikan masalah, lihat Catatan rilis.

Eksekusi DAG pertama untuk file DAG yang diupload memiliki beberapa tugas yang gagal

Saat Anda mengupload file DAG, terkadang beberapa tugas pertama dari eksekusi DAG pertama untuk file tersebut gagal dengan error Unable to read remote log.... Masalah ini terjadi karena file DAG disinkronkan antara bucket lingkungan, worker Airflow, dan scheduler Airflow di lingkungan Anda. Jika scheduler mendapatkan file DAG dan menjadwalkannya untuk dieksekusi oleh worker, dan jika worker belum memiliki file DAG, eksekusi tugas akan gagal.

Untuk mengurangi masalah ini, lingkungan dengan Airflow 2 dikonfigurasi untuk melakukan dua percobaan ulang untuk tugas yang gagal secara default. Jika gagal, tugas akan dicoba ulang dua kali dengan interval 5 menit.

Managed Airflow seharusnya tidak terpengaruh oleh Kerentanan Apache Log4j 2 (CVE-2021-44228)

Sebagai respons terhadap Kerentanan Apache Log4j 2 (CVE-2021-44228), Managed Airflow telah melakukan investigasi mendetail dan kami yakin bahwa Managed Airflow tidak rentan terhadap eksploitasi ini.

UI Airflow terkadang mungkin tidak memuat ulang plugin setelah diubah

Jika plugin terdiri dari banyak file yang mengimpor modul lain, UI Airflow mungkin tidak dapat mengenali fakta bahwa plugin harus dimuat ulang. Dalam hal ini, mulai ulang server web Airflow di lingkungan Anda.

Error 504 saat mengakses UI Airflow

Anda bisa mendapatkan error 504 Gateway Timeout saat mengakses UI Airflow. Error ini dapat disebabkan oleh beberapa hal:

  • Masalah komunikasi sementara. Dalam hal ini, coba akses UI Airflow nanti. Anda juga dapat memulai ulang server web Airflow.

  • (Khusus Managed Airflow (Gen 3)) Masalah konektivitas. Jika UI Airflow tidak tersedia secara permanen, dan error waktu tunggu atau 504 dihasilkan, pastikan lingkungan Anda dapat mengakses *.composer.googleusercontent.com.

  • (Khusus Managed Airflow (Gen 2)) Masalah konektivitas. Jika UI Airflow tidak tersedia secara permanen, dan error waktu tunggu atau 504 dihasilkan, pastikan lingkungan Anda dapat mengakses *.composer.cloud.google.com. Jika Anda menggunakan Akses Google Pribadi dan mengirim traffic melalui IP Virtual private.googleapis.com, atau Kontrol Layanan VPC dan mengirim traffic melalui IP Virtual restricted.googleapis.com, pastikan Cloud DNS Anda juga dikonfigurasi untuk nama domain *.composer.cloud.google.com.

  • Server web Airflow tidak responsif. Jika error 504 tetap ada, tetapi Anda masih dapat mengakses UI Airflow pada waktu tertentu, maka server web Airflow mungkin tidak responsif karena kewalahan. Mencoba meningkatkan parameter skala dan performa server web.

Error 502 saat mengakses UI Airflow

Error 502 Internal server exception menunjukkan bahwa UI Airflow tidak dapat melayani permintaan masuk. Error ini dapat disebabkan oleh beberapa hal:

  • Masalah komunikasi sementara. Coba akses UI Airflow nanti.

  • Gagal memulai server web. Untuk memulai, server web memerlukan file konfigurasi untuk disinkronkan terlebih dahulu. Periksa log server web untuk menemukan entri log yang mirip dengan: GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/airflow.cfg /home/airflow/gcs/airflow.cfg.tmp atau GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/env_var.json.cfg /home/airflow/gcs/env_var.json.tmp. Jika Anda melihat error ini, periksa apakah file yang disebutkan dalam pesan error masih ada di bucket lingkungan.

    Jika terjadi penghapusan yang tidak disengaja (misalnya, karena kebijakan retensi dikonfigurasi), Anda dapat memulihkannya:

    1. Tetapkan variabel lingkungan baru di lingkungan Anda. Anda dapat menggunakan nama dan nilai variabel apa pun.

    2. Mengganti opsi konfigurasi Airflow. Anda dapat menggunakan opsi konfigurasi Airflow yang tidak ada.

Error 500 saat mengakses UI Airflow setelah mengganti [webserver]analytics_tool

Di lingkungan dengan Airflow 2, jika Anda mengganti opsi konfigurasi Airflow [webserver]analytics_tool untuk merutekan data penggunaan UI Airflow anonim ke layanan analisis (seperti Google Analytics, Segment, MetaRouter, atau Matomo), mengakses UI Airflow setelah update lingkungan berhasil mungkin akan menampilkan respons (500) Internal Server Error, dengan salah satu error berikut di log server web Airflow:

airflow.exceptions.AirflowConfigException: section/key [webserver/analytics_id] not found in config
airflow.exceptions.AirflowConfigException: section/key [webserver/analytics_url] not found in config

Jika [webserver]analytics_tool ditetapkan di Airflow 2, server web Airflow memerlukan opsi analisis pendamping di bagian [webserver] untuk juga ditentukan saat merender UI Airflow.

Di Airflow 3, opsi konfigurasi [webserver]analytics_tool, [webserver]analytics_id, dan [webserver]analytics_url dihapus.

Solusi:

  • Hapus penggantian untuk opsi konfigurasi Airflow [webserver]analytics_tool, atau
  • Tentukan semua opsi konfigurasi Airflow yang diperlukan secara bersamaan:
    • [webserver]analytics_tool
    • [webserver]analytics_id
    • [webserver]analytics_url (diperlukan di Airflow 2.9 dan yang lebih baru, meskipun alat analisis Anda tidak menggunakan URL kustom)

Mengarahkan kursor ke instance tugas di tampilan Hierarki akan menampilkan TypeError yang tidak tertangkap

Di Airflow 2, tampilan Hierarki di UI Airflow terkadang mungkin tidak berfungsi dengan baik saat zona waktu non-default digunakan. Sebagai solusi untuk masalah ini, konfigurasikan zona waktu secara eksplisit di UI Airflow.

Folder kosong di Scheduler dan Workers

Managed Airflow tidak secara aktif menghapus folder kosong dari worker dan scheduler Airflow. Entity tersebut mungkin dibuat sebagai hasil dari proses sinkronisasi bucket lingkungan saat folder ini ada di bucket dan akhirnya dihapus.

Rekomendasi: Sesuaikan DAG Anda agar siap melewati folder kosong tersebut.

Entitas tersebut pada akhirnya akan dihapus dari penyimpanan lokal penjadwal dan worker Airflow saat komponen ini dimulai ulang (misalnya, sebagai akibat dari operasi perkecil skala atau pemeliharaan di cluster lingkungan Anda).

Dukungan untuk Kerberos

Managed Airflow tidak mendukung konfigurasi Kerberos Airflow.

Dukungan untuk class komputasi di Managed Airflow (Gen 2) dan Managed Airflow (Gen 3)

Managed Airflow (Gen 3) dan Managed Airflow (Gen 2) hanya mendukung class komputasi tujuan umum. Artinya, menjalankan Pod yang meminta class komputasi lain (seperti Balanced atau Scale-Out) tidak dapat dilakukan.

Class tujuan umum memungkinkan Pod yang berjalan meminta memori hingga 110 GB dan CPU hingga 30 (seperti yang dijelaskan dalam Permintaan Maksimum Class Komputasi.

Jika Anda ingin menggunakan arsitektur berbasis ARM atau memerlukan lebih banyak CPU dan Memori, Anda harus menggunakan class komputasi yang berbeda, yang tidak didukung dalam cluster Managed Airflow (Gen 3) dan Managed Airflow (Gen 2).

Rekomendasi: Gunakan GKEStartPodOperator untuk menjalankan Pod Kubernetes di cluster berbeda yang mendukung class komputasi yang dipilih. Jika Anda menjalankan Pod kustom yang memerlukan class komputasi yang berbeda, Pod tersebut juga harus dijalankan di cluster Airflow non-Managed Airflow.

Tidak mungkin mengurangi penyimpanan Cloud SQL

Airflow terkelola menggunakan Cloud SQL untuk menjalankan database Airflow. Seiring waktu, penyimpanan disk untuk instance Cloud SQL mungkin bertambah karena disk diskalakan agar sesuai dengan data yang disimpan oleh operasi Cloud SQL saat database Airflow bertambah.

Anda tidak dapat memperkecil ukuran disk Cloud SQL.

Sebagai solusinya, jika ingin menggunakan ukuran disk Cloud SQL terkecil, Anda dapat membuat ulang lingkungan Managed Airflow dengan snapshot.

Metrik penggunaan Disk Database tidak berkurang setelah menghapus data dari Cloud SQL

Database relasional, seperti Postgres atau MySQL, tidak menghapus baris secara fisik saat dihapus atau diperbarui. Namun, PostgreSQL menandainya sebagai "tupel mati" untuk mempertahankan konsistensi data dan menghindari pemblokiran transaksi serentak.

MySQL dan Postgres menerapkan mekanisme untuk mengklaim kembali ruang setelah data dihapus.

Meskipun database dapat dipaksa untuk mengklaim kembali kapasitas disk yang tidak digunakan, ini adalah operasi yang membutuhkan banyak resource dan juga mengunci database sehingga Managed Airflow tidak tersedia. Oleh karena itu, sebaiknya andalkan mekanisme bawaan untuk mengklaim kembali ruang yang tidak digunakan.

Akses diblokir: Error Otorisasi

Jika masalah ini memengaruhi pengguna, dialog Akses diblokir: Error Otorisasi akan berisi pesan Error 400: admin_policy_enforced.

Jika opsi Kontrol API > Aplikasi pihak ketiga yang tidak dikonfigurasi > Jangan izinkan pengguna mengakses aplikasi pihak ketiga diaktifkan di Google Workspace dan Apache Airflow di aplikasi Managed Airflow tidak diizinkan secara eksplisit, pengguna tidak dapat mengakses UI Airflow kecuali jika mereka mengizinkan aplikasi secara eksplisit.

Untuk mengizinkan akses, lakukan langkah-langkah yang disediakan di Mengizinkan akses ke UI Airflow di Google Workspace.

Loop login saat mengakses UI Airflow

Masalah ini mungkin disebabkan oleh hal berikut:

Folder /data tidak tersedia di server web Airflow

Di Managed Airflow (Gen 2) dan Managed Airflow (Gen 3), server web Airflow dimaksudkan sebagai komponen yang sebagian besar bersifat hanya baca dan Managed Airflow tidak menyinkronkan folder data/ ke komponen ini.

Terkadang, Anda mungkin ingin berbagi file umum di antara semua komponen Airflow, termasuk server web Airflow.

Solusi:

  • Gabungkan file yang akan dibagikan ke server web ke dalam modul PYPI dan instal sebagai paket PYPI reguler. Setelah modul PYPI diinstal di lingkungan, file akan ditambahkan ke image komponen Airflow dan tersedia untuk komponen tersebut.

  • Tambahkan file ke folder plugins/. Folder ini disinkronkan ke server web Airflow.

Diagram waktu penguraian DAG dan ukuran DAG bag yang tidak berkelanjutan dalam pemantauan

Diagram waktu penguraian DAG yang tidak berkelanjutan dan ukuran DAG bag di dasbor pemantauan menunjukkan masalah dengan waktu penguraian DAG yang lama (lebih dari 5 menit).

Grafik waktu penguraian DAG Airflow dan ukuran DAG bag yang menunjukkan serangkaian interval yang tidak berkelanjutan
Gambar 1. Grafik waktu penguraian DAG dan ukuran DAG bag yang tidak berkelanjutan (klik untuk memperbesar)

Solusi: Sebaiknya pertahankan total waktu penguraian DAG di bawah 5 menit. Untuk mengurangi waktu penguraian DAG, ikuti panduan penulisan DAG.

Log tugas muncul dengan penundaan

Gejala:

  • Di Managed Airflow (Gen 3), log tugas Airflow tidak langsung muncul dan tertunda selama beberapa menit.
  • Anda mungkin menemukan pesan Logs not found for Cloud Logging filter di log Airflow

Penyebab:

Jika lingkungan Anda menjalankan banyak tugas secara bersamaan, log tugas dapat tertunda karena ukuran infrastruktur lingkungan tidak cukup untuk memproses semua log dengan cukup cepat.

Solusi:

  • Pertimbangkan untuk meningkatkan ukuran infrastruktur lingkungan guna meningkatkan performa.
  • Distribusikan eksekusi DAG dari waktu ke waktu, sehingga tugas tidak dijalankan pada saat yang sama.

Peningkatan waktu startup untuk KubernetesPodOperator dan KubernetesExecutor

Pod yang dibuat dengan KubernetesPodOperator dan tugas yang dijalankan dengan KubernetesExecutor mengalami peningkatan waktu startup. Tim Managed Airflow sedang berupaya menemukan solusi dan akan mengumumkan saat masalah telah diselesaikan.

Solusi:

  • Luncurkan Pod dengan lebih banyak CPU.
  • Jika memungkinkan, optimalkan image (lapisan lebih sedikit, ukuran lebih kecil).

Lingkungan berada dalam status ERROR setelah akun penagihan project dihapus atau dinonaktifkan, atau Cloud Composer API dinonaktifkan

Lingkungan Managed Airflow yang terpengaruh oleh masalah ini tidak dapat dipulihkan:

  • Setelah akun penagihan project dihapus atau dinonaktifkan, meskipun akun lain ditautkan nanti.
  • Setelah Cloud Composer API dinonaktifkan di project, meskipun diaktifkan nanti.

Anda dapat melakukan hal berikut untuk mengatasi masalah ini:

  • Anda masih dapat mengakses data yang disimpan di bucket lingkungan, tetapi lingkungan itu sendiri tidak dapat digunakan lagi. Anda dapat membuat lingkungan Managed Airflow baru, lalu mentransfer DAG dan data Anda.

  • Jika Anda ingin melakukan operasi apa pun yang membuat lingkungan Anda tidak dapat dipulihkan, pastikan untuk mencadangkan data Anda, misalnya, dengan membuat snapshot lingkungan. Dengan cara ini, Anda dapat membuat lingkungan lain dan mentransfer datanya dengan memuat snapshot ini.

Log untuk tugas Airflow tidak dikumpulkan jika [core]execute_tasks_new_python_interpreter ditetapkan ke True

Managed Airflow tidak mengumpulkan log untuk tugas Airflow jika opsi konfigurasi Airflow [core]execute_tasks_new_python_interpreter ditetapkan ke True.

Solusi yang mungkin:

  • Hapus penggantian untuk opsi konfigurasi ini, atau tetapkan nilainya ke False.

Error saat menghapus Lampiran Jaringan ketika lingkungan dihapus

Jika beberapa lingkungan yang menggunakan lampiran jaringan yang sama dihapus secara bersamaan, beberapa operasi penghapusan akan gagal dan menampilkan error.

Gejala:

Error berikut akan muncul:

Got error while removing Network Attachment: <error code>

Kode error yang dilaporkan dapat berupa Bad request: <resource> is not ready, atau Precondition failed: Invalid fingerprint.

Kemungkinan solusi:

  • Hapus lingkungan yang menggunakan lampiran jaringan yang sama satu per satu.

  • Nonaktifkan koneksi ke jaringan VPC untuk lingkungan Anda sebelum menghapusnya. Sebaiknya gunakan solusi ini untuk penghapusan lingkungan otomatis.

Penurunan performa lingkungan di beberapa versi paket google-api-core

Versi dari 2.28.0 hingga 2.30.2

Versi paket prainstal google-api-core dari 2.28.0 hingga 2.30.2 dapat menyebabkan penurunan performa lingkungan, yang dapat mengakibatkan waktu yang lebih lama untuk mengeksekusi tugas dan waktu yang lebih lama untuk memindahkan tugas dari status dalam antrean ke status eksekusi.

Image container dasar untuk build yang terpengaruh kini telah di-patch, sehingga lingkungan yang baru dibuat tidak terpengaruh. Hanya lingkungan yang ada yang belum memperbarui image container-nya sejak 4 November 2026 yang tetap terpengaruh.

Build Managed Airflow (Gen 3) yang terpengaruh:

  • composer-3-airflow-3.1.7-build.0 hingga composer-3-airflow-3.1.7-build.5
  • composer-3-airflow-3.1.0-build.5 ke composer-3-airflow-3.1.0-build.10
  • composer-3-airflow-2.11.1-build.0
  • composer-3-airflow-2.10.5-build.22 ke composer-3-airflow-2.10.5-build.33
  • composer-3-airflow-2.9.3-build.42 ke composer-3-airflow-2.9.3-build.53

Build Managed Airflow (Gen 2) yang terpengaruh:

  • composer-2.16.10-airflow-2.11.1
  • composer-2.16.0-airflow-2.10.5 ke composer-2.16.10-airflow-2.10.5
  • composer-2.16.0-airflow-2.9.3 ke composer-2.16.10-airflow-2.9.3

Solusi:

Untuk mengurangi masalah ini di lingkungan yang ada, upgrade ke image yang dirilis pada atau setelah 6 November 2026 (yang mencakup google-api-core 2.43.1), upgrade ke salah satu build berikut (yang mencakup google-api-core 2.27.0), atau ikuti langkah-langkah mitigasi mandiri di Versi dari 2.30.3 hingga 2.43.0 di Python 3.11:

  • 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

Versi dari 2.30.3 hingga 2.43.0 di Python 3.11

Mulai 24 Oktober 2026, paket google-api-core versi 2.30.3 hingga 2.43.0 (serta 2.28.0 hingga 2.30.2) menjalankan pemeriksaan penghentian penggunaan Python 3.11 yang memindai metadata paket yang diinstal setiap kali library klien Google Cloud diimpor dalam subproses Python baru.

Di lingkungan Managed Airflow yang menjalankan Python 3.11, perilaku ini dapat menurunkan performa, terutama di lingkungan yang memiliki banyak DAG, tugas yang sering berjalan singkat, atau integrasi silsilah data yang diaktifkan.

Status:

  • Diperbaiki dalam rilis 6 November 2026 dan yang lebih baru: Image composer-3-airflow-3.3.1-build.6, composer-3-airflow-3.2.2-build.10, composer-3-airflow-2.11.1-build.23, composer-2.17.17-airflow-2.11.1, dan yang lebih baru menginstal google-api-core 2.43.1, yang memperbaiki masalah ini.
  • Image dasar yang di-patch untuk build sebelumnya: Image container dasar untuk semua build yang terpengaruh yang tercantum di bagian ini telah di-patch di semua region. Lingkungan yang baru dibuat tidak akan terpengaruh, meskipun Anda membuatnya dengan build sebelumnya.
  • Lingkungan yang ada: Lingkungan yang dibuat sebelum 5 November 2026 akan terus menggunakan image container yang di-cache sebelumnya hingga di-refresh melalui pemeliharaan terjadwal atau salah satu langkah mitigasi di bagian ini.

Gejalanya meliputi:

  • Peningkatan waktu penguraian DAG dan penggunaan CPU yang lebih tinggi pada pemroses DAG Airflow.
  • Waktu eksekusi tugas yang lebih lama dan penggunaan CPU yang lebih tinggi pada worker Airflow.
  • Entri log FutureWarning yang sering dari google/api_core/_python_version_support.py yang menyatakan bahwa dukungan Python 3.11 berakhir pada 24-10-2027.

Sebelum pembaruan image, masalah ini memengaruhi lingkungan Python 3.11 tempat google-api-core versi 2.30.3 hingga 2.43.0 telah diinstal sebelumnya atau diinstal secara manual, termasuk build berikut.

Build Managed Airflow (Gen 3) yang terpengaruh:

  • composer-3-airflow-3.3.1-build.0 hingga composer-3-airflow-3.3.1-build.5
  • composer-3-airflow-3.2.2-build.0 hingga composer-3-airflow-3.2.2-build.9
  • composer-3-airflow-3.1.8-build.0 ke composer-3-airflow-3.1.8-build.4
  • composer-3-airflow-3.1.7-build.7 ke composer-3-airflow-3.1.7-build.13
  • composer-3-airflow-2.11.1-build.3 ke composer-3-airflow-2.11.1-build.22
  • composer-3-airflow-2.10.5-build.36 ke composer-3-airflow-2.10.5-build.52

Build Managed Airflow (Gen 2) yang terpengaruh:

  • composer-2.17.0-airflow-2.11.1 ke composer-2.17.16-airflow-2.11.1
  • composer-2.17.0-airflow-2.10.5 ke composer-2.17.13-airflow-2.10.5

Mitigasi untuk lingkungan yang ada:

  • Jalur cepat di asia-east1, asia-northeast2, europe-central2, me-central1, northamerica-northeast1, dan us-south1: Jika lingkungan Anda telah menyelesaikan masa pemeliharaan terjadwal, tetapkan atau perbarui variabel lingkungan placeholder untuk memulai ulang workload Airflow di infrastruktur komputasi yang di-patch:

    gcloud composer environments update ENVIRONMENT_NAME \
      --location LOCATION \
      --update-env-variables=COMPOSER_RELOAD=1
    

    Setelah operasi selesai, periksa log lingkungan Anda. Jika entri FutureWarning dari google/api_core/_python_version_support.py terus muncul di workload yang baru dimulai (misalnya, jika pemeliharaan terjadwal belum berjalan atau project Anda menggunakan Kontrol Layanan VPC), terapkan salah satu opsi untuk semua region.

  • Semua wilayah: Pilih salah satu opsi berikut:

    • Opsi 1: Mengupgrade lingkungan Anda. Upgrade ke build yang tidak terpengaruh seperti composer-3-airflow-3.3.1-build.6, composer-3-airflow-3.2.2-build.10, composer-3-airflow-2.11.1-build.23, atau build yang di-patch yang lebih baru.

    • Opsi 2: Memicu update paket PyPI (memerlukan akses repositori PyPI). Update paket PyPI kustom yang ada atau instal paket tambahan untuk membangun ulang image lingkungan Anda dari image dasar yang di-patch dan memulai ulang semua workload Airflow.

      Di composer-3-airflow-3.3.1-build.0 hingga build.5, composer-3-airflow-3.2.2-build.1 hingga build.9, dan composer-3-airflow-3.1.8-build.3 hingga build.4, Anda dapat menginstal google-api-core>=2.43.1. Jangan instal google-api-core>=2.43.1 di build Airflow 3 yang lebih lama (3.2.2-build.0, 3.1.8-build.0 hingga build.2, 3.1.7, 3.1.0) atau build Airflow 2 yang lebih lama karena memerlukan opentelemetry-api>=1.44.0 dan menyebabkan konflik dependensi; sebagai gantinya, picu update paket PyPI lain.

  • Opsi 3 (solusi alternatif tanpa mengupgrade atau mengubah paket PyPI): Terapkan patch runtime sitecustomize.py. Gunakan opsi ini jika, misalnya, lingkungan Anda menggunakan Kontrol Layanan VPC tanpa akses repositori PyPI dan Anda tidak dapat langsung mengupgrade:

    1. Download sitecustomize.py dari GitHub.

    2. Upload sitecustomize.py ke folder dags/patches di bucket lingkungan Anda.

    3. Tetapkan variabel lingkungan PYTHONPATH ke /home/airflow/gcs/dags/patches.

      Jika PYTHONPATH sudah ditetapkan, tambahkan /home/airflow/gcs/dags/patches: ke nilai yang ada. Contoh: /home/airflow/gcs/dags/patches:PREVIOUS_PYTHONPATH_VALUE

    Pembersihan: Setelah mengupgrade lingkungan atau membangun ulang image-nya menggunakan langkah-langkah sebelumnya, Anda dapat menghapus penggantian PYTHONPATH dan menghapus dags/patches/sitecustomize.py.

TI tidak lagi dalam status berjalan dan tugas harus dihentikan serta error Task Not Found di Airflow 3

Airflow 3 memiliki dua masalah terkait scheduler yang kehilangan status tugas selama mulai ulang scheduler:

  • Status 409 Conflict: Kondisi race di penjadwal menyebabkan penjadwalan instance tugas duplikat (#59378, diselesaikan di #60330).

    Masalah ini telah diperbaiki di Airflow 3.2.2.

  • Error 404 Not Found: Worker Airflow kehilangan jejak instance tugas selama mulai ulang loop scheduler reguler, yang terjadi setelah scheduler mencapai [scheduler]num_runs. Tindakan ini akan mengubah ID instance tugas yang ada dan menghasilkan error 404 berikutnya dari worker yang tidak mengetahui perubahan tersebut ( #53140, #60330, diselesaikan di #61631).

    Masalah ini telah diperbaiki di Airflow 3.3.1.

Gejala

  • 409 Conflict: Status pembersihan orphan scheduler yang dimulai ulang menandai tugas aktif sebagai FAILED, sehingga menyebabkan worker berhenti secara tidak normal:

    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 Not Found: Penjadwal yang dimulai ulang kehilangan status tugas dan gagal dalam pemeriksaan denyut worker aktif:

    Server indicated the task shouldn't be running anymore [detail={'detail':
    {'reason': 'not_found', 'message': 'Task Instance not found'}}]
    [status_code=404] [ti_id=...]
    

Solusi:

  • Kedua masalah ini telah diperbaiki di Airflow versi 3.3.1 dan yang lebih baru. Upgrade lingkungan Anda ke versi yang menggunakan Airflow 3.3.1.

Kemungkinan solusi:

  • Masalah ini tidak dapat sepenuhnya dimitigasi di Airflow versi sebelum 3.3.1. Setiap peristiwa eksternal yang menyebabkan satu scheduler dimulai ulang secara tidak terduga akan memicu 404 dan 409 (di Airflow versi sebelum 3.2.2). Contoh peristiwa tersebut adalah upgrade otomatis node di cluster lingkungan Anda, kondisi OOM di Pod, atau konsumsi memori dan CPU yang tinggi oleh penjadwal.

  • Menurunkan skala lingkungan Anda menjadi satu scheduler dan menetapkan opsi konfigurasi [scheduler]num_runs ke -1 akan mengurangi penyebab kondisi race di scheduler.

    Untuk lingkungan yang sangat tangguh (Ketersediaan Tinggi), jumlah penjadwal tidak dapat dikurangi menjadi satu. Anda masih dapat menetapkan [scheduler]num_runs ke -1.

  • Pastikan konsumsi memori dan CPU oleh scheduler berada dalam batas resource yang tersedia.

Langkah berikutnya