Skip to content

Conversation

@OscarLigthart
Copy link
Contributor

@OscarLigthart OscarLigthart commented Jan 15, 2026

Context

After upgrading to 3.1.6, we started seeing the following error in our GKEStartPodOperator execution, running in deferred mode:

AttributeError: 'GKEKubernetesAsyncHook' object has no attribute '_event_polling_fallback'
File "/home/airflow/.local/lib/python3.12/site-packages/airflow/providers/cncf/kubernetes/triggers/pod.py", line 161 in run

File "/home/airflow/.local/lib/python3.12/site-packages/airflow/providers/cncf/kubernetes/triggers/pod.py", line 262 in _wait_for_pod_start

File "/home/airflow/.local/lib/python3.12/site-packages/airflow/providers/cncf/kubernetes/utils/pod_manager.py", line 1018 in watch_pod_events

File "/home/airflow/.local/lib/python3.12/site-packages/airflow/providers/cncf/kubernetes/hooks/kubernetes.py", line 1001 in watch_pod_events

Problem

After some research it looks like it's a result of the addition of the _event_polling_fallback in the AsyncKubernetesHook. This is never initialized in the GKEKubernetesAsyncHook, because the AsyncKubernetesHook init method is never called, due to disruption of the MRO chain.

With the current initialization of GKEKubernetesAsyncHook, the MRO is:

  1. GKEKubernetesAsyncHook
  2. GoogleBaseAsyncHook -> Doesn't call super().__init__(), so it stops here
  3. AsyncKubernetesHook
  4. KubernetesHook
  5. BaseHook

As stated, the initialization stops after 2 due to a missing super().__init__(). Hence, the _event_polling_fallback method is never added.

Solution

I figured it would be less invasive to explicitly call both init methods. We could also consider adding the super().__init__() call to GoogleBaseAsyncHook. This area is relatively new to me, so I'm very open to discuss this!

Though the latter feels more invasive, it also feels like a more proper solution.

EDIT: latter solution doesn't work as it will pass the gcp_conn_id and impersonation_chain to the BaseHook.


Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

Generated-by: Claude Sonnet 4.5 following the guidelines


  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst or {issue_number}.significant.rst, in airflow-core/newsfragments.

@boring-cyborg boring-cyborg bot added area:providers provider:google Google (including GCP) related issues labels Jan 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:providers provider:google Google (including GCP) related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GKEKubernetesAsyncHook missing _event_polling_fallback attribute

1 participant