You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2022/06/09 18:53:46 UTC

[GitHub] [airflow] o-nikolas opened a new pull request, #24357: DebugExecutor use ti.run() instead of ti._run_raw_task

o-nikolas opened a new pull request, #24357:
URL: https://github.com/apache/airflow/pull/24357

   The DebugExecutor previously executed tasks by calling the "private" ti._run_raw_task(...) method instead of ti.run(...). But the latter contains the logic to increase task instance try_numbers when running, thus tasks executed with the DebugExecutor were never getting their try_numbers increased. For rescheduled tasks this led to off-by-one errors (as the logic to reduce the try_number for the reschedule was still working while the increase was not).
   
   This off-by-one error manifests as a KeyError in _update_counters (seen in #13322) since the try_number for ti.keys in the in-memory ti_status.running map don't match the try_number in the ti.keys in the DB.  #13322 was marked as resolved because there were two issues being conflated, one issues was fixed (and the ticket closed) but users were still seeing this failure due to the issue fixed in this PR.
   
   This unblocks system tests (which are executed with the DebugExecutor) which will hit the aforementioned off-by-one error if a system test includes a Sensor (which does more than one poke, it needs to be rescheduled at least once to raise the exception).
   
   **NOTE: The main fix here is to use ti.run() for the debug executor, if anyone has the historical context for that design decision please weigh in, thanks!** (CC @turbaszek)
   
   <!--
   Thank you for contributing! Please make sure that your code changes
   are covered with tests. And in case of new features or big changes
   remember to adjust the documentation.
   
   Feel free to ping committers for the review!
   
   In case of existing issue, reference it using one of the following:
   
   closes: #ISSUE
   related: #ISSUE
   
   How to write a good git commit message:
   http://chris.beams.io/posts/git-commit/
   -->
   
   ---
   **^ Add meaningful description above**
   
   Read the **[Pull Request Guidelines](https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#pull-request-guidelines)** for more information.
   In case of fundamental code change, Airflow Improvement Proposal ([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvements+Proposals)) is needed.
   In case of a new dependency, check compliance with the [ASF 3rd Party License Policy](https://www.apache.org/legal/resolved.html#category-x).
   In case of backwards incompatible changes please leave a note in a newsfragement file, named `{pr_number}.significant.rst`, in [newsfragments](https://github.com/apache/airflow/tree/main/newsfragments).
   


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [airflow] potiuk commented on a diff in pull request #24357: DebugExecutor use ti.run() instead of ti._run_raw_task

Posted by GitBox <gi...@apache.org>.
potiuk commented on code in PR #24357:
URL: https://github.com/apache/airflow/pull/24357#discussion_r894374307


##########
tests/jobs/test_backfill_job.py:
##########
@@ -1599,7 +1615,7 @@ def test_mapped_dag(self, dag_id, executor_name, session):
         self.dagbag.process_file(str(TEST_DAGS_FOLDER / f'{dag_id}.py'))
         dag = self.dagbag.get_dag(dag_id)
 
-        when = datetime.datetime(2022, 1, 1)
+        when = timezone.datetime(2022, 1, 1)

Review Comment:
   Yep. Long running tests are NOT run on our CI at all :).
   
   There is no more context than that :D



-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [airflow] potiuk merged pull request #24357: DebugExecutor use ti.run() instead of ti._run_raw_task

Posted by GitBox <gi...@apache.org>.
potiuk merged PR #24357:
URL: https://github.com/apache/airflow/pull/24357


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [airflow] potiuk commented on pull request #24357: DebugExecutor use ti.run() instead of ti._run_raw_task

Posted by GitBox <gi...@apache.org>.
potiuk commented on PR #24357:
URL: https://github.com/apache/airflow/pull/24357#issuecomment-1153548717

   Merging. The failing tests are because of "full tests needed" and timeouts on K8S tests (should be fixed by https://github.com/apache/airflow/pull/24408)


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [airflow] o-nikolas commented on a diff in pull request #24357: DebugExecutor use ti.run() instead of ti._run_raw_task

Posted by GitBox <gi...@apache.org>.
o-nikolas commented on code in PR #24357:
URL: https://github.com/apache/airflow/pull/24357#discussion_r894902778


##########
tests/jobs/test_backfill_job.py:
##########
@@ -1599,7 +1615,7 @@ def test_mapped_dag(self, dag_id, executor_name, session):
         self.dagbag.process_file(str(TEST_DAGS_FOLDER / f'{dag_id}.py'))
         dag = self.dagbag.get_dag(dag_id)
 
-        when = datetime.datetime(2022, 1, 1)
+        when = timezone.datetime(2022, 1, 1)

Review Comment:
   :laughing: I meant more context for _why_ that's the case. I assume it's because folks just don't want to slow down the regular builds, but maybe there were timeouts on the test runners? Either way, what do you think about a scheduled CI run (once daily maybe?) on `main` which includes long running tests so that we at least get some coverage for them, thoughts? 



-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [airflow] o-nikolas commented on a diff in pull request #24357: DebugExecutor use ti.run() instead of ti._run_raw_task

Posted by GitBox <gi...@apache.org>.
o-nikolas commented on code in PR #24357:
URL: https://github.com/apache/airflow/pull/24357#discussion_r893856303


##########
tests/jobs/test_backfill_job.py:
##########
@@ -1599,7 +1615,7 @@ def test_mapped_dag(self, dag_id, executor_name, session):
         self.dagbag.process_file(str(TEST_DAGS_FOLDER / f'{dag_id}.py'))
         dag = self.dagbag.get_dag(dag_id)
 
-        when = datetime.datetime(2022, 1, 1)
+        when = timezone.datetime(2022, 1, 1)

Review Comment:
   Note: DB errors are thrown if a non-timezoned date is used, which makes me think these long running tests aren't being run in our CI? Since they would be failing. @potiuk do you have any context around that? 



-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [airflow] github-actions[bot] commented on pull request #24357: DebugExecutor use ti.run() instead of ti._run_raw_task

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #24357:
URL: https://github.com/apache/airflow/pull/24357#issuecomment-1152206149

   The PR most likely needs to run full matrix of tests because it modifies parts of the core of Airflow. However, committers might decide to merge it quickly and take the risk. If they don't merge it quickly - please rebase it to the latest main at your convenience, or amend the last commit of the PR, and push it with --force-with-lease.


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org