airflow-maintenance-dags icon indicating copy to clipboard operation
airflow-maintenance-dags copied to clipboard

Airflow 2.2.5 cleanup_DagModel issue

Open AlekseiSaff opened this issue 2 years ago • 1 comments

Was wondering, what's the issue here and how easy to fix it?

[2022-05-07, 10:51:45 HKT] {airflow-db-cleanup.py:316} INFO - Entry: <DAG: tutorial>, Date: 2020-09-28 02:29:29+00:00 [2022-05-07, 10:51:45 HKT] {airflow-db-cleanup.py:321} INFO - Process will be Deleting 23 DagModel(s) [2022-05-07, 10:51:45 HKT] {airflow-db-cleanup.py:328} INFO - Performing Delete... [2022-05-07, 10:51:45 HKT] {taskinstance.py:1774} ERROR - Task failed with exception Traceback (most recent call last): File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context cursor, statement, parameters, context File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute cursor.execute(statement, parameters) File "/usr/local/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 206, in execute res = self._query(query) File "/usr/local/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 319, in _query db.query(q) File "/usr/local/lib64/python3.6/site-packages/MySQLdb/connections.py", line 259, in query _mysql.connection.query(self, query) MySQLdb._exceptions.IntegrityError: (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (***.dag_tag, CONSTRAINT dag_tag_ibfk_1 FOREIGN KEY (dag_id) REFERENCES dag (dag_id))')

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/airflow/operators/python.py", line 174, in execute return_value = self.execute_callable() File "/usr/local/lib/python3.6/site-packages/airflow/operators/python.py", line 188, in execute_callable return self.python_callable(self.op_args, self.op_kwargs) File "/home/lt/airflow/dags/airflow-db-cleanup.py", line 330, in cleanup_function query.delete(synchronize_session=False) File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/orm/query.py", line 3926, in delete delete_op.exec_() File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1697, in exec_ self._do_exec() File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1930, in _do_exec self._execute_stmt(delete_stmt) File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1702, in _execute_stmt self.result = self.query._execute_crud(stmt, self.mapper) File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/orm/query.py", line 3568, in _execute_crud return conn.execute(stmt, self._params) File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1011, in execute return meth(self, multiparams, params) File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1130, in _execute_clauseelement distilled_params, File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1317, in execute_context e, statement, parameters, cursor, context File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1511, in handle_dbapi_exception sqlalchemy_exception, with_traceback=exc_info[2], from=e File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/util/compat.py", line 182, in raise raise exception File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context cursor, statement, parameters, context File "/usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute cursor.execute(statement, parameters) File "/usr/local/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 206, in execute res = self._query(query) File "/usr/local/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 319, in _query db.query(q) File "/usr/local/lib64/python3.6/site-packages/MySQLdb/connections.py", line 259, in query _mysql.connection.query(self, query) sqlalchemy.exc.IntegrityError: (MySQLdb._exceptions.IntegrityError) (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (***.dag_tag, CONSTRAINT dag_tag_ibfk_1 FOREIGN KEY (dag_id) REFERENCES dag (dag_id))') [SQL: DELETE FROM dag WHERE dag.last_parsed_time <= %s] [parameters: (datetime.datetime(2022, 4, 7, 2, 50, 39, 568870),)] (Background on this error at: http://sqlalche.me/e/13/gkpj) [2022-05-07, 10:51:45 HKT] {taskinstance.py:1288} INFO - Marking task as FAILED. dag_id=-db-cleanup, task_id=cleanup_DagModel, execution_date=20220507T025037, start_date=20220507T025145, end_date=20220507T025145 [2022-05-07, 10:51:46 HKT] {standard_task_runner.py:98} ERROR - Failed to execute job 346951 for task cleanup_DagModel ((MySQLdb._exceptions.IntegrityError) (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (***.dag_tag, CONSTRAINT dag_tag_ibfk_1 FOREIGN KEY (dag_id) REFERENCES dag (dag_id))') [SQL: DELETE FROM dag WHERE dag.last_parsed_time <= %s] [parameters: (datetime.datetime(2022, 4, 7, 2, 50, 39, 568870),)] (Background on this error at: http://sqlalche.me/e/13/gkpj); 32703) [2022-05-07, 10:51:46 HKT] {local_task_job.py:154} INFO - Task exited with return code 1 [2022-05-07, 10:51:46 HKT] {local_task_job.py:264} INFO - 0 downstream tasks scheduled from follow-on schedule check

AlekseiSaff avatar May 07 '22 03:05 AlekseiSaff

resolved. there were old tags in dat_tag table

AlekseiSaff avatar May 07 '22 03:05 AlekseiSaff

Resolved by #116

prakshalj0512 avatar Aug 19 '22 16:08 prakshalj0512