Alexander Petrovsky created AIRFLOW-1358:
--------------------------------------------

             Summary: SQL file renderer and on_failure_callback
                 Key: AIRFLOW-1358
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-1358
             Project: Apache Airflow
          Issue Type: New Feature
          Components: core
            Reporter: Alexander Petrovsky


I have the follow dag:

https://gist.github.com/juise/cc006584e17be72e78550aab53a1be9c

When I broke my firs step (prepare), on_failure_callback function was called, 
but it's crashed too, due looks like in sql rendered something is broken, and 
he can't work with sql files (by example, by cleanup.sql file, see more info 
below). But, when I use flat sql instead of sql file, everything works 
perfectly. 

My cleanup.sql file:
{code:java}
$ cat cleanup.sql
DROP TABLE IF EXISTS etl.{{ params.target_table }}_{{ ts_nodash }} CASCADE;
{code:java}

Log:
{code:java}
[2017-06-29 15:14:13,474] {models.py:168} INFO - Filling up the DagBag from 
/opt/airflow/dags/ga_full_stats_test/ga_full_stats.py
[2017-06-29 15:14:13,852] {base_hook.py:67} INFO - Using connection to: 
v2.rtty.in
[2017-06-29 15:14:13,858] {base_hook.py:67} INFO - Using connection to: 
vga.rtty.in
[2017-06-29 15:14:13,893] {base_task_runner.py:112} INFO - Running: ['bash', 
'-c', u'airflow run ga_full_stats_test_v2 prepare 2017-06-06T10:27:00 --job_id 
123798 --raw -sd DAGS_FOLDER/ga_full_stats_test/ga_full_stats.py']
[2017-06-29 15:14:14,391] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:14,391] {__init__.py:57} INFO - Using executor CeleryExecutor
[2017-06-29 15:14:14,924] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:14,924] {models.py:168} INFO - Filling up the DagBag from 
/opt/airflow/dags/ga_full_stats_test/ga_full_stats.py
[2017-06-29 15:14:15,088] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,087] {base_hook.py:67} INFO - Using connection to: v2.rtty.in
[2017-06-29 15:14:15,091] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,091] {base_hook.py:67} INFO - Using connection to: vga.rtty.in
[2017-06-29 15:14:15,109] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,109] {models.py:1128} INFO - Dependencies all met for <TaskInstance: 
ga_full_stats_test_v2.prepare 2017-06-06 10:27:00 [queued]>
[2017-06-29 15:14:15,112] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,112] {models.py:1128} INFO - Dependencies all met for <TaskInstance: 
ga_full_stats_test_v2.prepare 2017-06-06 10:27:00 [queued]>
[2017-06-29 15:14:15,112] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,112] {models.py:1328} INFO - 
[2017-06-29 15:14:15,112] {base_task_runner.py:95} INFO - Subtask: 
--------------------------------------------------------------------------------
[2017-06-29 15:14:15,112] {base_task_runner.py:95} INFO - Subtask: Starting 
attempt 1 of 1
[2017-06-29 15:14:15,112] {base_task_runner.py:95} INFO - Subtask: 
--------------------------------------------------------------------------------
[2017-06-29 15:14:15,112] {base_task_runner.py:95} INFO - Subtask: 
[2017-06-29 15:14:15,120] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,120] {models.py:1352} INFO - Executing <Task(VerticaOperator): 
prepare> on 2017-06-06 10:27:00
[2017-06-29 15:14:15,138] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,137] {vertica_operator.py:45} INFO - Executing: CREATE TABLE 
etl.stats_full_daily_test_20170606T102700 1 LIKE public.stats_full_daily_test;
[2017-06-29 15:14:15,141] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,141] {base_hook.py:67} INFO - Using connection to: vga.rtty.in
[2017-06-29 15:14:15,158] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,158] {dbapi_hook.py:167} INFO - CREATE TABLE 
etl.stats_full_daily_test_20170606T102700 1 LIKE public.stats_full_daily_test;
[2017-06-29 15:14:15,164] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,164] {models.py:1427} ERROR - Severity: ERROR, Message: Syntax error 
at or near "1", Sqlstate: 42601, Position: 56, Routine: base_yyerror, File: 
/scratch_a/release/svrtar18593/vbuild/vertica/Parser/scan.l, Line: 1043, SQL: 
'CREATE TABLE etl.stats_full_daily_test_20170606T102700 1 LIKE 
public.stats_full_daily_test;'
[2017-06-29 15:14:15,164] {base_task_runner.py:95} INFO - Subtask: Traceback 
(most recent call last):
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/models.py", line 1384, in run
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask:     result = 
task_copy.execute(context=context)
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/contrib/operators/vertica_operator.py",
 line 47, in execute
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask:     
hook.run(self.sql)
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/hooks/dbapi_hook.py", line 171, in run
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask:     
cur.execute(s)
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/vertica_python/vertica/cursor.py", line 111, 
in execute
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask:     raise 
errors.QueryError.from_error_response(self._message, operation)
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask: 
VerticaSyntaxError: Severity: ERROR, Message: Syntax error at or near "1", 
Sqlstate: 42601, Position: 56, Routine: base_yyerror, File: 
/scratch_a/release/svrtar18593/vbuild/vertica/Parser/scan.l, Line: 1043, SQL: 
'CREATE TABLE etl.stats_full_daily_test_20170606T102700 1 LIKE 
public.stats_full_daily_test;'
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,164] {models.py:1451} INFO - Marking task as FAILED.
[2017-06-29 15:14:15,165] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,165] {vertica_operator.py:45} INFO - Executing: cleanup.sql
[2017-06-29 15:14:15,169] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,169] {base_hook.py:67} INFO - Using connection to: vga.rtty.in
[2017-06-29 15:14:15,181] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,181] {dbapi_hook.py:167} INFO - cleanup.sql
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,185] {models.py:1466} ERROR - Failed at executing callback
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,185] {models.py:1467} ERROR - Severity: ERROR, Message: Syntax error 
at or near "cleanup", Sqlstate: 42601, Position: 1, Routine: base_yyerror, 
File: /scratch_a/release/svrtar18593/vbuild/vertica/Parser/scan.l, Line: 1043, 
SQL: 'cleanup.sql'
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask: Traceback 
(most recent call last):
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/models.py", line 1464, in 
handle_failure
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask:     
task.on_failure_callback(context)
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask:   File 
"/opt/airflow/dags/ga_full_stats_test/ga_full_stats.py", line 64, in 
cleanup_on_failure
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask:     
cleanup.execute(context)
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/contrib/operators/vertica_operator.py",
 line 47, in execute
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask:     
hook.run(self.sql)
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/hooks/dbapi_hook.py", line 171, in run
[2017-06-29 15:14:15,185] {base_task_runner.py:95} INFO - Subtask:     
cur.execute(s)
[2017-06-29 15:14:15,186] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/vertica_python/vertica/cursor.py", line 111, 
in execute
[2017-06-29 15:14:15,186] {base_task_runner.py:95} INFO - Subtask:     raise 
errors.QueryError.from_error_response(self._message, operation)
[2017-06-29 15:14:15,186] {base_task_runner.py:95} INFO - Subtask: 
VerticaSyntaxError: Severity: ERROR, Message: Syntax error at or near 
"cleanup", Sqlstate: 42601, Position: 1, Routine: base_yyerror, File: 
/scratch_a/release/svrtar18593/vbuild/vertica/Parser/scan.l, Line: 1043, SQL: 
'cleanup.sql'
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask: [2017-06-29 
15:14:15,191] {models.py:1472} ERROR - Severity: ERROR, Message: Syntax error 
at or near "1", Sqlstate: 42601, Position: 56, Routine: base_yyerror, File: 
/scratch_a/release/svrtar18593/vbuild/vertica/Parser/scan.l, Line: 1043, SQL: 
'CREATE TABLE etl.stats_full_daily_test_20170606T102700 1 LIKE 
public.stats_full_daily_test;'
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask: Traceback 
(most recent call last):
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/bin/airflow", line 28, in <module>
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask:     
args.func(args)
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/bin/cli.py", line 422, in run
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask:     
pool=args.pool,
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/utils/db.py", line 53, in wrapper
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask:     result = 
func(*args, **kwargs)
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/models.py", line 1384, in run
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask:     result = 
task_copy.execute(context=context)
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/contrib/operators/vertica_operator.py",
 line 47, in execute
[2017-06-29 15:14:15,191] {base_task_runner.py:95} INFO - Subtask:     
hook.run(self.sql)
[2017-06-29 15:14:15,192] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/airflow/hooks/dbapi_hook.py", line 171, in run
[2017-06-29 15:14:15,192] {base_task_runner.py:95} INFO - Subtask:     
cur.execute(s)
[2017-06-29 15:14:15,192] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/lib/python2.7/site-packages/vertica_python/vertica/cursor.py", line 111, 
in execute
[2017-06-29 15:14:15,192] {base_task_runner.py:95} INFO - Subtask:     raise 
errors.QueryError.from_error_response(self._message, operation)
[2017-06-29 15:14:15,192] {base_task_runner.py:95} INFO - Subtask: 
vertica_python.errors.VerticaSyntaxError: Severity: ERROR, Message: Syntax 
error at or near "1", Sqlstate: 42601, Position: 56, Routine: base_yyerror, 
File: /scratch_a/release/svrtar18593/vbuild/vertica/Parser/scan.l, Line: 1043, 
SQL: 'CREATE TABLE etl.stats_full_daily_test_20170606T102700 1 LIKE 
public.stats_full_daily_test;'
[2017-06-29 15:14:15,893] {jobs.py:2107} INFO - Task exited with return code 1
{code}




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to