airflow: Unable to start scheduler after stopped
Apache Airflow version: 2.0.0rc3
Kubernetes version (if you are using kubernetes) (use kubectl version
):
Environment:
- Cloud provider or hardware configuration: Linux
- OS (e.g. from /etc/os-release): Ubuntu
- Kernel (e.g.
uname -a
): - Install tools:
- Others:
What happened:
After shutting down the scheduler, while tasks were in running state, trying to restart the scheduler results in pk violations…
Traceback (most recent call last):
File "/home/jcoder/git/airflow_2.0/pyenv/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
cursor, statement, parameters, context
File "/home/jcoder/git/airflow_2.0/pyenv/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
cursor.execute(statement, parameters)
psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "dag_run_dag_id_run_id_key"
DETAIL: Key (dag_id, run_id)=(example_task_group, scheduled__2020-12-14T04:31:00+00:00) already exists.
What you expected to happen:
Scheduler restarts and picks up where it left off.
How to reproduce it:
Set example dag ( I used task_group) to schedule_interval * * * * *
and start the scheduler and let it run for a few minutes.
Shut down the scheduler
Attempt to restart the scheduler
Anything else we need to know: I came across this doing testing using the LocalExecutor in a virtual env. If no else is able to reproduce it, I’ll try again in a clean virtual env.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 41 (39 by maintainers)
Commits related to this issue
- Stop loading Extra Operator links in Scheduler (#13932) closes #13099 — committed to apache/airflow by kaxil 3 years ago
- Stop loading Extra Operator links in Scheduler (#13932) closes #13099 (cherry picked from commit 70345293031b56a6ce4019efe66ea9762d96c316) — committed to apache/airflow by kaxil 3 years ago
- Stop loading Extra Operator links in Scheduler (#13932) closes #13099 (cherry picked from commit 70345293031b56a6ce4019efe66ea9762d96c316) — committed to apache/airflow by kaxil 3 years ago
of course, sorry about that. I
Happy New Year @ashb There is a little bit of both. There is an outstanding issue where use of Variables (or probably anything that interacts with the backed db in the global scope) in a plugin raises the
UNEXPECTED COMMIT
RunTime error. The problem I reported with being unable to restart the scheduler seems to have been caused by wrapping myVariable.get
in an overly generous try/except, hiding the run time error and causing things in the db to get out of sync. Running the below should recreate the issue, I did this on python 3.7Marking this as can’t reproduce for now – it may be a race condition, but… 🤷🏻