airflow-maintenance-dags
airflow-maintenance-dags copied to clipboard
Airflow 2.2.5 cleanup_DagModel issue
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
resolved. there were old tags in dat_tag table
Resolved by #116