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 2020/07/08 12:57:38 UTC

[GitHub] [airflow] ashb opened a new pull request #9719: Pre-create Celery db result tables before running Celery worker

ashb opened a new pull request #9719:
URL: https://github.com/apache/airflow/pull/9719


   Otherwise at large scale this can end up with some tasks failing as they
   try to create the result table at the same time.
   
   This was always possible before, just exceedingly rare, but in large
   scale performance testing where I create a lot of tasks quickly
   (especially in my HA testing) I hit this a few times.
   
   This is also only a problem for fresh installs/clean DBs, as once these
   tables exist the possible race goes away.
   
   This is the same fix from #8909, just for runtime, not test time.
   
   ---
   Make sure to mark the boxes below before creating PR: [x]
   
   - [x] Description above provides context of the change
   - [x] Unit tests coverage for changes (not needed for documentation changes)
   - [x] Target Github ISSUE in description if exists
   - [x] Commits follow "[How to write a good git commit message](http://chris.beams.io/posts/git-commit/)"
   - [x] Relevant documentation is updated including usage instructions.
   - [x] I will engage committers as explained in [Contribution Workflow Example](https://github.com/apache/airflow/blob/master/CONTRIBUTING.rst#contribution-workflow-example).
   
   ---
   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 [UPDATING.md](https://github.com/apache/airflow/blob/master/UPDATING.md).
   Read the [Pull Request Guidelines](https://github.com/apache/airflow/blob/master/CONTRIBUTING.rst#pull-request-guidelines) for more information.


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

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



[GitHub] [airflow] kaxil commented on a change in pull request #9719: Pre-create Celery db result tables before running Celery worker

Posted by GitBox <gi...@apache.org>.
kaxil commented on a change in pull request #9719:
URL: https://github.com/apache/airflow/pull/9719#discussion_r451536099



##########
File path: airflow/cli/commands/celery_command.py
##########
@@ -112,6 +113,24 @@ def worker(args):
         log=args.log_file,
     )
 
+    backend = celery_app.backend
+
+    if hasattr(backend, 'ResultSession'):
+        # Pre-create the database tables now, otherwise SQLA via Celery has a
+        # race condition where it one of the subprocesses can die with "Table

Review comment:
       ```suggestion
           # race condition where one of the subprocesses can die with "Table
   ```




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

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



[GitHub] [airflow] ashb merged pull request #9719: Pre-create Celery db result tables before running Celery worker

Posted by GitBox <gi...@apache.org>.
ashb merged pull request #9719:
URL: https://github.com/apache/airflow/pull/9719


   


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

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