This is an automated email from the ASF dual-hosted git repository. jedcunningham pushed a commit to branch v2-9-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 26597046291a7f53b8a73165c19fd946d5887778 Author: Andrey Anshin <[email protected]> AuthorDate: Thu Apr 11 14:24:03 2024 +0400 Fix implicit cartessian product in AirflowSecurityManagerV2 (#38913) Co-authored-by: Tzu-ping Chung <[email protected]> (cherry picked from commit e16dc0fc2862bfa5e90e7f080f12b36c992972b7) --- airflow/www/security_manager.py | 8 ++++---- pyproject.toml | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/airflow/www/security_manager.py b/airflow/www/security_manager.py index c63de34068..88c2caa32a 100644 --- a/airflow/www/security_manager.py +++ b/airflow/www/security_manager.py @@ -199,8 +199,8 @@ class AirflowSecurityManagerV2(LoggingMixin): if not resource_pk: return None composite_pk = json.loads(resource_pk) - ti = session.scalar( - select(DagRun) + dag_id = session.scalar( + select(TaskInstance.dag_id) .where( TaskInstance.dag_id == composite_pk[0], TaskInstance.task_id == composite_pk[1], @@ -209,9 +209,9 @@ class AirflowSecurityManagerV2(LoggingMixin): ) .limit(1) ) - if not ti: + if not dag_id: raise AirflowException("Task instance not found") - return ti.dag_id + return dag_id def get_pool_name(resource_pk): if not resource_pk: diff --git a/pyproject.toml b/pyproject.toml index 7ab695097c..82e3cbc528 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -478,6 +478,8 @@ norecursedirs = [ log_level = "INFO" filterwarnings = [ "error::pytest.PytestCollectionWarning", + # Avoid building cartesian product which might impact performance + "error:SELECT statement has a cartesian product between FROM:sqlalchemy.exc.SAWarning:airflow", "ignore::DeprecationWarning:flask_appbuilder.filemanager", "ignore::DeprecationWarning:flask_appbuilder.widgets", # https://github.com/dpgaspar/Flask-AppBuilder/pull/1940
