HsiuChuanHsu commented on issue #56192:
URL: https://github.com/apache/airflow/issues/56192#issuecomment-3393068953

   Hi @hket-ianchu,
   I was able to reproduce the issue you provided. Below are the reproduction 
results:
   
   **Create testing data in `dag_version` & `task_instance` table.**
   - `dag_version`: created_at     | 2025-09-01
   
   <img width="477" height="158" alt="Image" 
src="https://github.com/user-attachments/assets/f0395a14-58f1-4e08-942d-478a8e58f8de";
 />
   
   - `task_instance-1`:  start_date           | 2025-09-06
   
   <img width="434" height="666" alt="Image" 
src="https://github.com/user-attachments/assets/be676f8e-35d7-43ea-a6c4-84725c88903d";
 />
   
   - `task_instance-2`:  start_date           | 2025-10-01
   
   <img width="435" height="652" alt="Image" 
src="https://github.com/user-attachments/assets/934d4091-2c35-4549-b37f-0a1c3a11162e";
 />
   
   
   
   ---
   
   **Use `airflow db clean` to clean up the records**
   ```bash
   airflow db clean --clean-before-timestamp "2025-09-21T10:30" --skip-archive 
--yes
   ```
   
   
   **Result**
   ```bash
   airflow db clean --clean-before-timestamp "2025-09-21T10:30" --skip-archive 
--yes
   /opt/airflow/airflow-core/src/airflow/dag_processing/dagbag.py:40 
DeprecationWarning: airflow.exceptions.AirflowDagCycleException is deprecated. 
Use airflow.sdk.exceptions.AirflowDagCycleException instead.
   2025-10-11T08:33:45.238607Z [warning  ] Table celery_tasksetmeta not found.  
Skipping. [airflow.utils.db_cleanup] loc=db_cleanup.py:555
   2025-10-11T08:33:45.238729Z [warning  ] Table celery_taskmeta not found.  
Skipping. [airflow.utils.db_cleanup] loc=db_cleanup.py:555
   
   Checking table task_instance_history
   Found 0 rows meeting deletion criteria.
   
   Checking table xcom
   Found 0 rows meeting deletion criteria.
   
   Checking table task_instance
   Found 1 rows meeting deletion criteria.
   Performing Delete...
   Moving data to table _airflow_deleted__task_instance__20251011083345
   Finished Performing Delete
   
   Checking table deadline
   Found 0 rows meeting deletion criteria.
   
   Checking table dag_run
   Found 1 rows meeting deletion criteria.
   Performing Delete...
   Moving data to table _airflow_deleted__dag_run__20251011083345
   Finished Performing Delete
   
   Checking table dag_version
   Found 1 rows meeting deletion criteria.
   Performing Delete...
   Moving data to table _airflow_deleted__dag_version__20251011083345
   Traceback (most recent call last):
     File "/usr/python/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 1910, in _execute_context
       self.dialect.do_execute(
     File 
"/usr/python/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 
736, in do_execute
       cursor.execute(statement, parameters)
   psycopg2.errors.ForeignKeyViolation: update or delete on table "dag_version" 
violates foreign key constraint "task_instance_dag_version_id_fkey" on table 
"task_instance"
   DETAIL:  Key (id)=(018c5e5e-7a8b-7000-8000-000000000001) is still referenced 
from table "task_instance".
   
   
   The above exception was the direct cause of the following exception:
   
   Traceback (most recent call last):
     File "/usr/python/bin/airflow", line 10, in <module>
       sys.exit(main())
                ^^^^^^
     File "/opt/airflow/airflow-core/src/airflow/__main__.py", line 55, in main
       args.func(args)
     File "/opt/airflow/airflow-core/src/airflow/cli/cli_config.py", line 49, 
in command
       return func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
     File "/opt/airflow/airflow-core/src/airflow/utils/cli.py", line 115, in 
wrapper
       return f(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^
     File 
"/opt/airflow/airflow-core/src/airflow/utils/providers_configuration_loader.py",
 line 54, in wrapped_function
       return func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
     File "/opt/airflow/airflow-core/src/airflow/cli/commands/db_command.py", 
line 297, in cleanup_tables
       run_cleanup(
     File "/opt/airflow/airflow-core/src/airflow/utils/session.py", line 100, 
in wrapper
       return func(*args, session=session, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/opt/airflow/airflow-core/src/airflow/utils/db_cleanup.py", line 
544, in run_cleanup
       _cleanup_table(
     File "/opt/airflow/airflow-core/src/airflow/utils/db_cleanup.py", line 
371, in _cleanup_table
       _do_delete(
     File "/opt/airflow/airflow-core/src/airflow/utils/db_cleanup.py", line 
261, in _do_delete
       raise e
     File "/opt/airflow/airflow-core/src/airflow/utils/db_cleanup.py", line 
257, in _do_delete
       session.execute(delete)
     File "/usr/python/lib/python3.12/site-packages/sqlalchemy/orm/session.py", 
line 1717, in execute
       result = conn._execute_20(statement, params or {}, execution_options)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/usr/python/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 1710, in _execute_20
       return meth(self, args_10style, kwargs_10style, execution_options)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/usr/python/lib/python3.12/site-packages/sqlalchemy/sql/elements.py", line 
334, in _execute_on_connection
       return connection._execute_clauseelement(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/usr/python/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 1577, in _execute_clauseelement
       ret = self._execute_context(
             ^^^^^^^^^^^^^^^^^^^^^^
     File "/usr/python/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 1953, in _execute_context
       self._handle_dbapi_exception(
     File "/usr/python/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 2134, in _handle_dbapi_exception
       util.raise_(
     File "/usr/python/lib/python3.12/site-packages/sqlalchemy/util/compat.py", 
line 211, in raise_
       raise exception
     File "/usr/python/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 1910, in _execute_context
       self.dialect.do_execute(
     File 
"/usr/python/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 
736, in do_execute
       cursor.execute(statement, parameters)
   sqlalchemy.exc.IntegrityError: (psycopg2.errors.ForeignKeyViolation) update 
or delete on table "dag_version" violates foreign key constraint 
"task_instance_dag_version_id_fkey" on table "task_instance"
   DETAIL:  Key (id)=(018c5e5e-7a8b-7000-8000-000000000001) is still referenced 
from table "task_instance".
   
   [SQL: DELETE FROM dag_version USING 
_airflow_deleted__dag_version__20251011083345 WHERE dag_version.id = 
_airflow_deleted__dag_version__20251011083345.id]
   (Background on this error at: https://sqlalche.me/e/14/gkpj)
   
   ```


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