hkc-8010 opened a new issue, #40187:
URL: https://github.com/apache/airflow/issues/40187

   ### Apache Airflow version
   
   2.9.2
   
   ### If "Other Airflow 2 version" selected, which one?
   
   _No response_
   
   ### What happened?
   
   When an invalid value is passed to any argument in default_args, such as 
passing a string value "2" to max_active_tis_per_dag which expects an integer, 
the scheduler crashes. The error message received is:
   
   ```
   [2024-06-12T05:04:39.041+0000] {scheduler_command.py:54} ERROR - Exception 
when running scheduler job
   Traceback (most recent call last):
     File 
"/usr/local/lib/python3.11/site-packages/airflow/cli/commands/scheduler_command.py",
 line 52, in _run_scheduler_job
       run_job(job=job_runner.job, execute_callable=job_runner._execute)
     File "/usr/local/lib/python3.11/site-packages/airflow/utils/session.py", 
line 79, in wrapper
       return func(*args, session=session, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/usr/local/lib/python3.11/site-packages/airflow/jobs/job.py", line 
395, in run_job
       return execute_job(job, execute_callable=execute_callable)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/usr/local/lib/python3.11/site-packages/airflow/jobs/job.py", line 
424, in execute_job
       ret = execute_callable()
             ^^^^^^^^^^^^^^^^^^
     File 
"/usr/local/lib/python3.11/site-packages/astronomer/airflow/version_check/plugin.py",
 line 30, in run_before
       fn(*args, **kwargs)
     File 
"/usr/local/lib/python3.11/site-packages/airflow/jobs/scheduler_job_runner.py", 
line 854, in _execute
       self._run_scheduler_loop()
     File 
"/usr/local/lib/python3.11/site-packages/airflow/jobs/scheduler_job_runner.py", 
line 986, in _run_scheduler_loop
       num_queued_tis = self._do_scheduling(session)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/usr/local/lib/python3.11/site-packages/airflow/jobs/scheduler_job_runner.py", 
line 1099, in _do_scheduling
       num_queued_tis = 
self._critical_section_enqueue_task_instances(session=session)
                        
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/usr/local/lib/python3.11/site-packages/airflow/jobs/scheduler_job_runner.py", 
line 677, in _critical_section_enqueue_task_instances
       queued_tis = self._executable_task_instances_to_queued(max_tis, 
session=session)
                    
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/usr/local/lib/python3.11/site-packages/airflow/jobs/scheduler_job_runner.py", 
line 533, in _executable_task_instances_to_queued
       if current_task_concurrency >= task_concurrency_limit:
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   TypeError: '>=' not supported between instances of 'int' and 'str'
   ```
   
   ### What you think should happen instead?
   
   Instead of crashing the scheduler, Airflow should throw an import error on 
the Airflow UI for the problematic DAG. This would help in identifying the 
problematic DAG easily. The current behaviour makes it difficult to identify 
which DAG caused the issue, especially when managing hundreds of DAGs. This 
small mistake in DAG can also cause an outage in the production environment.
   
   ### How to reproduce
   
   - Define a DAG with default_args that includes an invalid value for 
max_active_tis_per_dag, such as:
   
   ```
   default_args = {
       'max_active_tis_per_dag': "2",  # invalid value, should be an integer
   }
   ```
   - Deploy and start the DAG.
   - Observe the scheduler crash with the TypeError.
   
   ### Operating System
   
   Linux ad25902d8cef 6.7.12-orbstack-00201-g2ddb8f197a46 #1 SMP Tue May 21 
04:38:26 UTC 2024 aarch64 GNU/Linux
   
   ### Versions of Apache Airflow Providers
   
   _No response_
   
   ### Deployment
   
   Astronomer
   
   ### Deployment details
   
   _No response_
   
   ### Anything else?
   
   This problem occurs every time an invalid value is passed to an argument in 
default_args.
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
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.

To unsubscribe, e-mail: [email protected]

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

Reply via email to