Bijay Deo created AIRFLOW-4462:
----------------------------------
Summary: Airflow manual trigger/scheduled trigger doesn't work on
mssql(azure mssql, mssql 2017, other versions)
Key: AIRFLOW-4462
URL: https://issues.apache.org/jira/browse/AIRFLOW-4462
Project: Apache Airflow
Issue Type: Bug
Components: DagRun, database, db
Affects Versions: 1.10.3, 1.10.1, 1.9.0
Reporter: Bijay Deo
Assignee: Bijay Deo
Airflow dag trigger doesn't work mssql azure, mssql 2017 (tested), Other
version of mssql must have the same issue. Basically, airflow can't be used on
mssql without fixing this issue. Just click a number of manual triggers and it
will fail.
Dag trigger woks only when the execution_date is missing the milliseconds part.
when the millisecond part is non-zero upto the last digit, it fails to
trigger.
The problem is execution_date input having microsecond from pyodbc where it
compares equality on task_instance table. Since execution_date is up to
millisecond precision in db(sql server also rounds this value), the equality
fails on certain values, e.g, 2019-04-28 00:34:26.517, 2019-04-20T18:51:35.033
Stack trace below:
Connected to pydev debugger (build 191.6605.12)
[2019-04-23 21:49:13,361] \{settings.py:182} INFO - settings.configure_orm():
Using pool settings. pool_size=5, pool_recycle=1800, pid=78750
[2019-04-23 21:49:13,523] \{__init__.py:51} INFO - Using executor
SequentialExecutor
2019-04-23 21:49:17,318 INFO sqlalchemy.engine.base.Engine SELECT
CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)
[2019-04-23 21:49:17,318] \{log.py:110} INFO - SELECT
CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)
2019-04-23 21:49:17,319 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,319] \{log.py:110} INFO - ()
2019-04-23 21:49:17,324 INFO sqlalchemy.engine.base.Engine SELECT schema_name()
[2019-04-23 21:49:17,324] \{log.py:110} INFO - SELECT schema_name()
2019-04-23 21:49:17,324 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,324] \{log.py:110} INFO - ()
2019-04-23 21:49:17,329 INFO sqlalchemy.engine.base.Engine SELECT CAST('test
plain returns' AS VARCHAR(60)) AS anon_1
[2019-04-23 21:49:17,329] \{log.py:110} INFO - SELECT CAST('test plain returns'
AS VARCHAR(60)) AS anon_1
2019-04-23 21:49:17,329 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,329] \{log.py:110} INFO - ()
2019-04-23 21:49:17,332 INFO sqlalchemy.engine.base.Engine SELECT CAST('test
unicode returns' AS NVARCHAR(60)) AS anon_1
[2019-04-23 21:49:17,332] \{log.py:110} INFO - SELECT CAST('test unicode
returns' AS NVARCHAR(60)) AS anon_1
2019-04-23 21:49:17,333 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,333] \{log.py:110} INFO - ()
2019-04-23 21:49:17,337 INFO sqlalchemy.engine.base.Engine SELECT 1
[2019-04-23 21:49:17,337] \{log.py:110} INFO - SELECT 1
2019-04-23 21:49:17,337 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,337] \{log.py:110} INFO - ()
2019-04-23 21:49:17,340 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
[2019-04-23 21:49:17,340] \{log.py:110} INFO - BEGIN (implicit)
2019-04-23 21:49:17,344 INFO sqlalchemy.engine.base.Engine INSERT INTO log
(dttm, dag_id, task_id, event, execution_date, owner, extra) OUTPUT inserted.id
VALUES (?, ?, ?, ?, ?, ?, ?)
[2019-04-23 21:49:17,344] \{log.py:110} INFO - INSERT INTO log (dttm, dag_id,
task_id, event, execution_date, owner, extra) OUTPUT inserted.id VALUES (?, ?,
?, ?, ?, ?, ?)
2019-04-23 21:49:17,344 INFO sqlalchemy.engine.base.Engine
(datetime.datetime(2019, 4, 24, 4, 49, 17, 42277, tzinfo=<Timezone [UTC]>),
'tutorial', 'print_date', 'cli_run', <Pendulum
[2019-04-20T18:51:35.033000+00:00]>, 'admin', '\{"host_name":
"Bijays-MBP.hsd1.ca.comcast.net", "full_command":
"[\'/Users/admin/Documents/Development/Java/airflow/airflow/bin/airflow\',
\'run\', \ ... (18 characters truncated) ...
dmin/Documents/Development/Java/airflow/airflow/example_dags/tutorial.py\',
\'--local\', \'tutorial\', \'print_date\', \'2019-04-20 18:51:35.033\']"}')
[2019-04-23 21:49:17,344] \{log.py:110} INFO - (datetime.datetime(2019, 4, 24,
4, 49, 17, 42277, tzinfo=<Timezone [UTC]>), 'tutorial', 'print_date',
'cli_run', <Pendulum [2019-04-20T18:51:35.033000+00:00]>, 'admin',
'\{"host_name": "Bijays-MBP.hsd1.ca.comcast.net", "full_command":
"[\'/Users/admin/Documents/Development/Java/airflow/airflow/bin/airflow\',
\'run\', \ ... (18 characters truncated) ...
dmin/Documents/Development/Java/airflow/airflow/example_dags/tutorial.py\',
\'--local\', \'tutorial\', \'print_date\', \'2019-04-20 18:51:35.033\']"}')
2019-04-23 21:49:17,351 INFO sqlalchemy.engine.base.Engine COMMIT
[2019-04-23 21:49:17,351] \{log.py:110} INFO - COMMIT
[2019-04-23 21:49:17,366] \{__init__.py:305} INFO - Filling up the DagBag from
/Users/admin/Documents/Development/Java/airflow/airflow/example_dags/tutorial.py
2019-04-23 21:49:17,508 INFO sqlalchemy.engine.base.Engine SELECT
CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)
[2019-04-23 21:49:17,508] \{log.py:110} INFO - SELECT
CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)
2019-04-23 21:49:17,508 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,508] \{log.py:110} INFO - ()
2019-04-23 21:49:17,510 INFO sqlalchemy.engine.base.Engine SELECT schema_name()
[2019-04-23 21:49:17,510] \{log.py:110} INFO - SELECT schema_name()
2019-04-23 21:49:17,511 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,511] \{log.py:110} INFO - ()
2019-04-23 21:49:17,515 INFO sqlalchemy.engine.base.Engine SELECT CAST('test
plain returns' AS VARCHAR(60)) AS anon_1
[2019-04-23 21:49:17,515] \{log.py:110} INFO - SELECT CAST('test plain returns'
AS VARCHAR(60)) AS anon_1
2019-04-23 21:49:17,515 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,515] \{log.py:110} INFO - ()
2019-04-23 21:49:17,518 INFO sqlalchemy.engine.base.Engine SELECT CAST('test
unicode returns' AS NVARCHAR(60)) AS anon_1
[2019-04-23 21:49:17,518] \{log.py:110} INFO - SELECT CAST('test unicode
returns' AS NVARCHAR(60)) AS anon_1
2019-04-23 21:49:17,518 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,518] \{log.py:110} INFO - ()
2019-04-23 21:49:17,523 INFO sqlalchemy.engine.base.Engine SELECT 1
[2019-04-23 21:49:17,523] \{log.py:110} INFO - SELECT 1
2019-04-23 21:49:17,523 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,523] \{log.py:110} INFO - ()
2019-04-23 21:49:17,526 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
[2019-04-23 21:49:17,526] \{log.py:110} INFO - BEGIN (implicit)
2019-04-23 21:49:17,534 INFO sqlalchemy.engine.base.Engine SELECT TOP 1
task_instance.try_number AS task_instance_try_number, task_instance.task_id AS
task_instance_task_id, task_instance.dag_id AS task_instance_dag_id,
task_instance.execution_date AS task_instance_execution_date,
task_instance.start_date AS task_instance_start_date, task_instance.end_date AS
task_instance_end_date, task_instance.duration AS task_instance_duration,
task_instance.state AS task_instance_state, task_instance.max_tries AS
task_instance_max_tries, task_instance.hostname AS task_instance_hostname,
task_instance.unixname AS task_instance_unixname, task_instance.job_id AS
task_instance_job_id, task_instance.pool AS task_instance_pool,
task_instance.queue AS task_instance_queue, task_instance.priority_weight AS
task_instance_priority_weight, task_instance.operator AS
task_instance_operator, task_instance.queued_dttm AS task_instance_queued_dttm,
task_instance.pid AS task_instance_pid, task_instance.executor_config AS
task_instance_executor_config
FROM task_instance
WHERE task_instance.dag_id = ? AND task_instance.task_id = ? AND
task_instance.execution_date = ?
[2019-04-23 21:49:17,534] \{log.py:110} INFO - SELECT TOP 1
task_instance.try_number AS task_instance_try_number, task_instance.task_id AS
task_instance_task_id, task_instance.dag_id AS task_instance_dag_id,
task_instance.execution_date AS task_instance_execution_date,
task_instance.start_date AS task_instance_start_date, task_instance.end_date AS
task_instance_end_date, task_instance.duration AS task_instance_duration,
task_instance.state AS task_instance_state, task_instance.max_tries AS
task_instance_max_tries, task_instance.hostname AS task_instance_hostname,
task_instance.unixname AS task_instance_unixname, task_instance.job_id AS
task_instance_job_id, task_instance.pool AS task_instance_pool,
task_instance.queue AS task_instance_queue, task_instance.priority_weight AS
task_instance_priority_weight, task_instance.operator AS
task_instance_operator, task_instance.queued_dttm AS task_instance_queued_dttm,
task_instance.pid AS task_instance_pid, task_instance.executor_config AS
task_instance_executor_config
FROM task_instance
WHERE task_instance.dag_id = ? AND task_instance.task_id = ? AND
task_instance.execution_date = ?
2019-04-23 21:49:17,536 INFO sqlalchemy.engine.base.Engine ('tutorial',
'print_date', <Pendulum [2019-04-20T18:51:35.033000+00:00]>)
[2019-04-23 21:49:17,536] \{log.py:110} INFO - ('tutorial', 'print_date',
<Pendulum [2019-04-20T18:51:35.033000+00:00]>)
2019-04-23 21:49:17,547 INFO sqlalchemy.engine.base.Engine COMMIT
[2019-04-23 21:49:17,547] \{log.py:110} INFO - COMMIT
2019-04-23 21:49:17,681 INFO sqlalchemy.engine.base.Engine SELECT 1
[2019-04-23 21:49:17,681] \{log.py:110} INFO - SELECT 1
2019-04-23 21:49:17,681 INFO sqlalchemy.engine.base.Engine ()
[2019-04-23 21:49:17,681] \{log.py:110} INFO - ()
2019-04-23 21:49:17,684 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
[2019-04-23 21:49:17,684] \{log.py:110} INFO - BEGIN (implicit)
2019-04-23 21:49:17,686 INFO sqlalchemy.engine.base.Engine SELECT TOP 1
dag_run.state AS dag_run_state, dag_run.id AS dag_run_id, dag_run.dag_id AS
dag_run_dag_id, dag_run.execution_date AS dag_run_execution_date,
dag_run.start_date AS dag_run_start_date, dag_run.end_date AS dag_run_end_date,
dag_run.run_id AS dag_run_run_id, dag_run.external_trigger AS
dag_run_external_trigger, dag_run.conf AS dag_run_conf
FROM dag_run
WHERE dag_run.dag_id = ? AND dag_run.execution_date = ?
[2019-04-23 21:49:17,686] \{log.py:110} INFO - SELECT TOP 1 dag_run.state AS
dag_run_state, dag_run.id AS dag_run_id, dag_run.dag_id AS dag_run_dag_id,
dag_run.execution_date AS dag_run_execution_date, dag_run.start_date AS
dag_run_start_date, dag_run.end_date AS dag_run_end_date, dag_run.run_id AS
dag_run_run_id, dag_run.external_trigger AS dag_run_external_trigger,
dag_run.conf AS dag_run_conf
FROM dag_run
WHERE dag_run.dag_id = ? AND dag_run.execution_date = ?
2019-04-23 21:49:17,686 INFO sqlalchemy.engine.base.Engine ('tutorial',
<Pendulum [2019-04-20T18:51:35.033000+00:00]>)
[2019-04-23 21:49:17,686] \{log.py:110} INFO - ('tutorial', <Pendulum
[2019-04-20T18:51:35.033000+00:00]>)
2019-04-23 21:49:17,691 INFO sqlalchemy.engine.base.Engine COMMIT
[2019-04-23 21:49:17,691] \{log.py:110} INFO - COMMIT
[2019-04-23 21:49:17,701] \{cli.py:517} INFO - Running <TaskInstance:
tutorial.print_date 2019-04-20T18:51:35.033000+00:00 [None]> on host
bijays-mbp.hsd1.ca.comcast.net
2019-04-23 21:49:36,110 INFO sqlalchemy.engine.base.Engine SELECT 1
2019-04-23 21:49:36,112 INFO sqlalchemy.engine.base.Engine ()
2019-04-23 21:49:36,119 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2019-04-23 21:49:36,127 INFO sqlalchemy.engine.base.Engine INSERT INTO job
(dag_id, state, job_type, start_date, end_date, latest_heartbeat,
executor_class, hostname, unixname) OUTPUT inserted.id VALUES (?, ?, ?, ?, ?,
?, ?, ?, ?)
2019-04-23 21:49:36,127 INFO sqlalchemy.engine.base.Engine ('tutorial',
'running', 'LocalTaskJob', datetime.datetime(2019, 4, 24, 4, 49, 32, 942901,
tzinfo=<Timezone [UTC]>), None, datetime.datetime(2019, 4, 24, 4, 49, 32,
943012, tzinfo=<Timezone [UTC]>), 'SequentialExecutor',
'bijays-mbp.hsd1.ca.comcast.net', 'admin')
2019-04-23 21:49:36,142 INFO sqlalchemy.engine.base.Engine COMMIT
2019-04-23 21:49:59,069 INFO sqlalchemy.engine.base.Engine SELECT 1
2019-04-23 21:49:59,070 INFO sqlalchemy.engine.base.Engine ()
2019-04-23 21:49:59,072 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2019-04-23 21:49:59,074 INFO sqlalchemy.engine.base.Engine SELECT TOP 1
dag_run.state AS dag_run_state, dag_run.id AS dag_run_id, dag_run.dag_id AS
dag_run_dag_id, dag_run.execution_date AS dag_run_execution_date,
dag_run.start_date AS dag_run_start_date, dag_run.end_date AS dag_run_end_date,
dag_run.run_id AS dag_run_run_id, dag_run.external_trigger AS
dag_run_external_trigger, dag_run.conf AS dag_run_conf
FROM dag_run
WHERE dag_run.dag_id = ? AND dag_run.execution_date = ?
2019-04-23 21:49:59,074 INFO sqlalchemy.engine.base.Engine ('tutorial',
<Pendulum [2019-04-20T18:51:35.033000+00:00]>)
2019-04-23 21:49:59,078 INFO sqlalchemy.engine.base.Engine COMMIT
2019-04-23 21:50:41,906 INFO sqlalchemy.engine.base.Engine SELECT 1
2019-04-23 21:50:41,908 INFO sqlalchemy.engine.base.Engine ()
2019-04-23 21:50:41,910 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2019-04-23 21:50:41,912 INFO sqlalchemy.engine.base.Engine SELECT TOP 1
task_instance.try_number AS task_instance_try_number, task_instance.task_id AS
task_instance_task_id, task_instance.dag_id AS task_instance_dag_id,
task_instance.execution_date AS task_instance_execution_date,
task_instance.start_date AS task_instance_start_date, task_instance.end_date AS
task_instance_end_date, task_instance.duration AS task_instance_duration,
task_instance.state AS task_instance_state, task_instance.max_tries AS
task_instance_max_tries, task_instance.hostname AS task_instance_hostname,
task_instance.unixname AS task_instance_unixname, task_instance.job_id AS
task_instance_job_id, task_instance.pool AS task_instance_pool,
task_instance.queue AS task_instance_queue, task_instance.priority_weight AS
task_instance_priority_weight, task_instance.operator AS
task_instance_operator, task_instance.queued_dttm AS task_instance_queued_dttm,
task_instance.pid AS task_instance_pid, task_instance.executor_config AS
task_instance_executor_config
FROM task_instance
WHERE task_instance.dag_id = ? AND task_instance.task_id = ? AND
task_instance.execution_date = ?
2019-04-23 21:50:41,913 INFO sqlalchemy.engine.base.Engine ('tutorial',
'print_date', <Pendulum [2019-04-20T18:51:35.033000+00:00]>)
2019-04-23 21:50:41,930 INFO sqlalchemy.engine.base.Engine SELECT
task_reschedule.id AS task_reschedule_id, task_reschedule.task_id AS
task_reschedule_task_id, task_reschedule.dag_id AS task_reschedule_dag_id,
task_reschedule.execution_date AS task_reschedule_execution_date,
task_reschedule.try_number AS task_reschedule_try_number,
task_reschedule.start_date AS task_reschedule_start_date,
task_reschedule.end_date AS task_reschedule_end_date, task_reschedule.duration
AS task_reschedule_duration, task_reschedule.reschedule_date AS
task_reschedule_reschedule_date
FROM task_reschedule
WHERE task_reschedule.dag_id = ? AND task_reschedule.task_id = ? AND
task_reschedule.execution_date = ? AND task_reschedule.try_number = ? ORDER BY
task_reschedule.id ASC
2019-04-23 21:50:41,930 INFO sqlalchemy.engine.base.Engine ('tutorial',
'print_date', <Pendulum [2019-04-20T18:51:35.033000+00:00]>, 1)
2019-04-23 21:50:41,936 INFO sqlalchemy.engine.base.Engine SELECT
count(task_instance.task_id) AS count_1
FROM task_instance
WHERE task_instance.dag_id = ? AND task_instance.state = ?
2019-04-23 21:50:41,937 INFO sqlalchemy.engine.base.Engine ('tutorial',
'running')
2019-04-23 21:50:41,941 INFO sqlalchemy.engine.base.Engine COMMIT
2019-04-23 21:53:03,611 INFO sqlalchemy.engine.base.Engine SELECT 1
2019-04-23 21:53:03,611 INFO sqlalchemy.engine.base.Engine ()
2019-04-23 21:53:03,614 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2019-04-23 21:53:03,616 INFO sqlalchemy.engine.base.Engine SELECT
task_instance.try_number AS task_instance_try_number, task_instance.task_id AS
task_instance_task_id, task_instance.dag_id AS task_instance_dag_id,
task_instance.execution_date AS task_instance_execution_date,
task_instance.start_date AS task_instance_start_date, task_instance.end_date AS
task_instance_end_date, task_instance.duration AS task_instance_duration,
task_instance.state AS task_instance_state, task_instance.max_tries AS
task_instance_max_tries, task_instance.hostname AS task_instance_hostname,
task_instance.unixname AS task_instance_unixname, task_instance.job_id AS
task_instance_job_id, task_instance.pool AS task_instance_pool,
task_instance.queue AS task_instance_queue, task_instance.priority_weight AS
task_instance_priority_weight, task_instance.operator AS
task_instance_operator, task_instance.queued_dttm AS task_instance_queued_dttm,
task_instance.pid AS task_instance_pid, task_instance.executor_config AS
task_instance_executor_config
FROM task_instance
WHERE task_instance.task_id = ? AND task_instance.dag_id = ? AND
task_instance.execution_date = ?
2019-04-23 21:53:03,616 INFO sqlalchemy.engine.base.Engine ('print_date',
'tutorial', <Pendulum [2019-04-20T18:51:35.033000+00:00]>)
2019-04-23 21:53:50,370 INFO sqlalchemy.engine.base.Engine INSERT INTO
task_instance (task_id, dag_id, execution_date, start_date, end_date, duration,
state, try_number, max_tries, hostname, unixname, job_id, pool, queue,
priority_weight, operator, queued_dttm, pid, executor_config) VALUES (?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2019-04-23 21:53:50,372 INFO sqlalchemy.engine.base.Engine ('print_date',
'tutorial', <Pendulum [2019-04-20T18:51:35.033000+00:00]>,
datetime.datetime(2019, 4, 24, 4, 50, 41, 924763, tzinfo=<Timezone [UTC]>),
None, None, 'running', 1, 1, 'bijays-mbp.hsd1.ca.comcast.net', 'admin', 2046,
None, 'default', 3, 'BashOperator', None, 78750, bytearray(b'\x80\x04}\x94.'))
2019-04-23 21:53:50,390 INFO sqlalchemy.engine.base.Engine ROLLBACK
2019-04-23 21:54:58,467 INFO sqlalchemy.engine.base.Engine SELECT 1
2019-04-23 21:54:58,467 INFO sqlalchemy.engine.base.Engine ()
2019-04-23 21:54:58,470 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2019-04-23 21:54:58,472 INFO sqlalchemy.engine.base.Engine SELECT job.id AS
job_id, job.dag_id AS job_dag_id, job.state AS job_state, job.job_type AS
job_job_type, job.start_date AS job_start_date, job.end_date AS job_end_date,
job.latest_heartbeat AS job_latest_heartbeat, job.executor_class AS
job_executor_class, job.hostname AS job_hostname, job.unixname AS job_unixname
FROM job
WHERE job.id = ? AND job.job_type IN (?)
2019-04-23 21:54:58,473 INFO sqlalchemy.engine.base.Engine (2046,
'LocalTaskJob')
2019-04-23 21:54:58,480 INFO sqlalchemy.engine.base.Engine UPDATE job SET
state=?, start_date=?, end_date=?, latest_heartbeat=? WHERE job.id = ?
2019-04-23 21:54:58,480 INFO sqlalchemy.engine.base.Engine ('failed',
datetime.datetime(2019, 4, 24, 4, 49, 32, 942901, tzinfo=<Timezone [UTC]>),
datetime.datetime(2019, 4, 24, 4, 53, 50, 392514, tzinfo=<Timezone [UTC]>),
datetime.datetime(2019, 4, 24, 4, 49, 32, 943012, tzinfo=<Timezone [UTC]>),
2046)
2019-04-23 21:54:58,485 INFO sqlalchemy.engine.base.Engine COMMIT
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line
1236, in _execute_context
cursor, statement, parameters, context
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py",
line 536, in do_execute
cursor.execute(statement, parameters)
pyodbc.IntegrityError: ('23000', "[23000] [Microsoft][ODBC Driver 17 for SQL
Server][SQL Server]Violation of PRIMARY KEY constraint
'PK__task_ins__9BEABD04B1A321BB'. Cannot insert duplicate key in object
'dbo.task_instance'. The duplicate key value is (print_date, tutorial, Apr 20
2019 6:51PM). (2627) (SQLExecDirectW)")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1741,
in <module>
main()
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1735,
in main
globals = debugger.run(setup['file'], None, None, is_module)
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1135,
in run
pydev_imports.execfile(file, globals, locals) # execute the script
File
"/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py",
line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/Users/admin/Documents/Development/Java/airflow/airflow/bin/airflow",
line 32, in <module>
args.func(args)
File "/Users/admin/Documents/Development/Java/airflow/airflow/utils/cli.py",
line 74, in wrapper
return f(*args, **kwargs)
File "/Users/admin/Documents/Development/Java/airflow/airflow/bin/cli.py",
line 523, in run
_run(args, dag, ti)
File "/Users/admin/Documents/Development/Java/airflow/airflow/bin/cli.py",
line 437, in _run
run_job.run()
File "/Users/admin/Documents/Development/Java/airflow/airflow/jobs.py", line
209, in run
self._execute()
File "/Users/admin/Documents/Development/Java/airflow/airflow/jobs.py", line
2548, in _execute
pool=self.pool):
File "/Users/admin/Documents/Development/Java/airflow/airflow/utils/db.py",
line 73, in wrapper
return func(*args, **kwargs)
File
"/Users/admin/Documents/Development/Java/airflow/airflow/models/__init__.py",
line 1365, in _check_and_change_state_before_execution
session.commit()
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line
1023, in commit
self.transaction.commit()
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line
487, in commit
self._prepare_impl()
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line
466, in _prepare_impl
self.session.flush()
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line
2446, in flush
self._flush(objects)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line
2584, in _flush
transaction.rollback(_capture_exception=True)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py",
line 67, in __exit__
compat.reraise(exc_type, exc_value, exc_tb)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line
277, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line
2544, in _flush
flush_context.execute()
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/unitofwork.py",
line 416, in execute
rec.execute(self)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/unitofwork.py",
line 583, in execute
uow,
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/persistence.py",
line 245, in save_obj
insert,
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/persistence.py",
line 1063, in _emit_insert_statements
c = cached_connections[connection].execute(statement, multiparams)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line
980, in execute
return meth(self, multiparams, params)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/sql/elements.py", line
273, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line
1099, in _execute_clauseelement
distilled_params,
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line
1240, in _execute_context
e, statement, parameters, cursor, context
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line
1458, in _handle_dbapi_exception
util.raise_from_cause(sqlalchemy_exception, exc_info)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line
296, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line
276, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line
1236, in _execute_context
cursor, statement, parameters, context
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py",
line 536, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (pyodbc.IntegrityError) ('23000', "[23000]
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Violation of PRIMARY KEY
constraint 'PK__task_ins__9BEABD04B1A321BB'. Cannot insert duplicate key in
object 'dbo.task_instance'. The duplicate key value is (print_date, tutorial,
Apr 20 2019 6:51PM). (2627) (SQLExecDirectW)") [SQL: 'INSERT INTO task_instance
(task_id, dag_id, execution_date, start_date, end_date, duration, state,
try_number, max_tries, hostname, unixname, job_id, pool, queue,
priority_weight, operator, queued_dttm, pid, executor_config) VALUES (?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'] [parameters: ('print_date',
'tutorial', <Pendulum [2019-04-20T18:51:35.033000+00:00]>,
datetime.datetime(2019, 4, 24, 4, 50, 41, 924763, tzinfo=<Timezone [UTC]>),
None, None, 'running', 1, 1, 'bijays-mbp.hsd1.ca.comcast.net', 'admin', 2046,
None, 'default', 3, 'BashOperator', None, 78750, bytearray(b'\x80\x04}\x94.'))]
(Background on this error at: http://sqlalche.me/e/gkpj)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)