fjmacagno opened a new issue #14182:
URL: https://github.com/apache/airflow/issues/14182


   **Apache Airflow version**: 2.0.1
   
   
   **Kubernetes version (if you are using kubernetes)** (use `kubectl 
version`): 1.15
   
   **Environment**:
   
   - **Cloud provider or hardware configuration**: k8s on bare metal
   - **OS** (e.g. from /etc/os-release): 
   - **Kernel** (e.g. `uname -a`):
   - **Install tools**: pip3
   - **Others**:
   
   **What happened**:
   Scheduler dies with 
   ```
   [2021-02-10 21:09:27,469] {scheduler_job.py:1298} ERROR - Exception when 
executing SchedulerJob._run_schedu
   ler_loop
   Traceback (most recent call last):
     File 
"/usr/local/lib/python3.8/site-packages/airflow/jobs/scheduler_job.py", line 
1280, in _execute
       self._run_scheduler_loop()
     File 
"/usr/local/lib/python3.8/site-packages/airflow/jobs/scheduler_job.py", line 
1384, in _run_scheduler
   _loop
       self.executor.heartbeat()
     File 
"/usr/local/lib/python3.8/site-packages/airflow/executors/base_executor.py", 
line 158, in heartbeat
       self.trigger_tasks(open_slots)
     File 
"/usr/local/lib/python3.8/site-packages/airflow/executors/base_executor.py", 
line 188, in trigger_ta
   sks
       self.execute_async(key=key, command=command, queue=None, 
executor_config=ti.executor_config)
     File 
"/usr/local/lib/python3.8/site-packages/airflow/executors/kubernetes_executor.py",
 line 493, in exec
   ute_async
       kube_executor_config = PodGenerator.from_obj(executor_config)
     File 
"/usr/local/lib/python3.8/site-packages/airflow/kubernetes/pod_generator.py", 
line 175, in from_obj
       k8s_legacy_object = obj.get("KubernetesExecutor", None)
   AttributeError: 'V1Pod' object has no attribute 'get'
   [2021-02-10 21:09:28,475] {process_utils.py:100} INFO - Sending 
Signals.SIGTERM to GPID 60
   [2021-02-10 21:09:29,222] {process_utils.py:66} INFO - Process 
psutil.Process(pid=66, status='terminated',
   started='21:09:27') (66) terminated with exit code None
   [2021-02-10 21:09:29,697] {process_utils.py:206} INFO - Waiting up to 5 
seconds for processes to exit...
   [2021-02-10 21:09:29,716] {process_utils.py:66} INFO - Process 
psutil.Process(pid=75, status='terminated',
   started='21:09:28') (75) terminated with exit code None
   [2021-02-10 21:09:29,717] {process_utils.py:66} INFO - Process 
psutil.Process(pid=60, status='terminated',
   exitcode=0, started='21:09:27') (60) terminated with exit code 0
   [2021-02-10 21:09:29,717] {scheduler_job.py:1301} INFO - Exited execute loop
   ```
   
   **What you expected to happen**:
   DAG loading fails, producing an error for just that DAG, instead of crashing 
the scheduler.
   
   **How to reproduce it**:
   Create a task like
   ```
       test = DummyOperator(task_id="new-pod-spec",
                                 executor_config=k8s.V1Pod(
                                         spec=k8s.V1PodSpec(
                                             containers=[
                                                 k8s.V1Container(
                                                     name="base",
                                                     image="myimage",
                                                     image_pull_policy="Always"
                                                 )
                                             ]
                                         )))
   ```
   or 
   ```
       test = DummyOperator(task_id="new-pod-spec",
                                 executor_config={"KubernetesExecutor": 
k8s.V1Pod(
                                         spec=k8s.V1PodSpec(
                                             containers=[
                                                 k8s.V1Container(
                                                     name="base",
                                                     image="myimage",
                                                     image_pull_policy="Always"
                                                 )
                                             ]
                                         ))})
   ```
   essentially anything where it expects a dict but gets something else, and 
run the scheduler using the kubernetes executor
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to