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 2021/09/08 15:50:35 UTC

[GitHub] [airflow] spoutnickgp opened a new pull request #18092: Graceful scheduler shutdown on error

spoutnickgp opened a new pull request #18092:
URL: https://github.com/apache/airflow/pull/18092


   This solves a potential rare occurrence of a process deadlock when using logs serving.
   If the scheduler, for any reason, were to encounter an unrecoverable error (such as a loss of connectivity to the database, or anything forcing the process to exit), the serve_logs subprocess would not be properly terminated.
   
   Thus, the process hangs instead of gracefully shutting down, thus requiring external restart.
   
   By ensuring the `.terminate()` function is _always_ called in case of a failure, the parent process can properly shut itself down.


-- 
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] boring-cyborg[bot] commented on pull request #18092: Graceful scheduler shutdown on error

Posted by GitBox <gi...@apache.org>.
boring-cyborg[bot] commented on pull request #18092:
URL: https://github.com/apache/airflow/pull/18092#issuecomment-922140604


   Awesome work, congrats on your first merged pull request!
   


-- 
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 change in pull request #18092: Graceful scheduler shutdown on error

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



##########
File path: airflow/cli/commands/scheduler_command.py
##########
@@ -38,11 +38,24 @@ def _create_scheduler_job(args):
     return job
 
 
+def _run_scheduler_job(args, is_daemon):
+    skip_serve_logs = args.skip_serve_logs
+    job = _create_scheduler_job(args)
+    if not is_daemon:
+        signal.signal(signal.SIGINT, sigint_handler)

Review comment:
       NIT: can we move the signal handling out to the "else"  in "scheduler()" ? seems that the handlers can be set before entering `_run_scheduler_job` and this way we will be able to remove `is_daemon` param,




-- 
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 #18092: Graceful scheduler shutdown on error

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


   The PR is likely OK to be merged with just subset of tests for default Python and Database versions without running the full matrix of tests, because it does not modify the core of Airflow. If the committers decide that the full tests matrix is needed, they will add the label 'full tests needed'. Then you should rebase to the latest main 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



[GitHub] [airflow] spoutnickgp commented on pull request #18092: Graceful scheduler shutdown on error

Posted by GitBox <gi...@apache.org>.
spoutnickgp commented on pull request #18092:
URL: https://github.com/apache/airflow/pull/18092#issuecomment-918377110


   > 
   > 
   > The Celery worker has the some logic, should we update that too?
   > 
   > https://github.com/apache/airflow/blob/68d99bc5582b52106f876ccc22cc1e115a42b252/airflow/cli/commands/celery_command.py#L178-L184
   
   I included a fix in the last commit for the celery worker.


-- 
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] spoutnickgp commented on a change in pull request #18092: Graceful scheduler shutdown on error

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



##########
File path: airflow/cli/commands/scheduler_command.py
##########
@@ -38,11 +38,24 @@ def _create_scheduler_job(args):
     return job
 
 
+def _run_scheduler_job(args, is_daemon):
+    skip_serve_logs = args.skip_serve_logs
+    job = _create_scheduler_job(args)
+    if not is_daemon:
+        signal.signal(signal.SIGINT, sigint_handler)

Review comment:
       Done.




-- 
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] kaxil commented on pull request #18092: Graceful scheduler shutdown on error

Posted by GitBox <gi...@apache.org>.
kaxil commented on pull request #18092:
URL: https://github.com/apache/airflow/pull/18092#issuecomment-922140680


   Thanks @spoutnickgp 


-- 
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 #18092: Graceful scheduler shutdown on error

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


   Would you be able to refactor the one small thing a bit @spoutnickgp ?


-- 
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] kaxil merged pull request #18092: Graceful scheduler shutdown on error

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


   


-- 
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] spoutnickgp commented on a change in pull request #18092: Graceful scheduler shutdown on error

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



##########
File path: airflow/cli/commands/scheduler_command.py
##########
@@ -38,11 +38,24 @@ def _create_scheduler_job(args):
     return job
 
 
+def _run_scheduler_job(args, is_daemon):
+    skip_serve_logs = args.skip_serve_logs
+    job = _create_scheduler_job(args)
+    if not is_daemon:
+        signal.signal(signal.SIGINT, sigint_handler)

Review comment:
       ok




-- 
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] spoutnickgp commented on pull request #18092: Graceful scheduler shutdown on error

Posted by GitBox <gi...@apache.org>.
spoutnickgp commented on pull request #18092:
URL: https://github.com/apache/airflow/pull/18092#issuecomment-917966227


   > Would you be able to refactor the one small thing a bit @spoutnickgp ?
   
   Yes, definitely, I'll move the signal handling in the else branch. Do you want me to alos perform the apply the same fix to the celery_command.py in the same PR, or would you rather have another PR for the corresponding fix ?


-- 
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] spoutnickgp edited a comment on pull request #18092: Graceful scheduler shutdown on error

Posted by GitBox <gi...@apache.org>.
spoutnickgp edited a comment on pull request #18092:
URL: https://github.com/apache/airflow/pull/18092#issuecomment-917966227


   > Would you be able to refactor the one small thing a bit @spoutnickgp ?
   
   Yes, definitely, I'll move the signal handling in the else branch. Do you want me to also perform the apply the same fix to the celery_command.py in the same PR, or would you rather have another PR for the corresponding fix ?


-- 
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] boring-cyborg[bot] commented on pull request #18092: Graceful scheduler shutdown on error

Posted by GitBox <gi...@apache.org>.
boring-cyborg[bot] commented on pull request #18092:
URL: https://github.com/apache/airflow/pull/18092#issuecomment-915358267


   Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contribution Guide (https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst)
   Here are some useful points:
   - Pay attention to the quality of your code (flake8, mypy and type annotations). Our [pre-commits]( https://github.com/apache/airflow/blob/main/STATIC_CODE_CHECKS.rst#prerequisites-for-pre-commit-hooks) will help you with that.
   - In case of a new feature add useful documentation (in docstrings or in `docs/` directory). Adding a new operator? Check this short [guide](https://github.com/apache/airflow/blob/main/docs/apache-airflow/howto/custom-operator.rst) Consider adding an example DAG that shows how users should use it.
   - Consider using [Breeze environment](https://github.com/apache/airflow/blob/main/BREEZE.rst) for testing locally, itโ€™s a heavy docker but it ships with a working Airflow and a lot of integrations.
   - Be patient and persistent. It might take some time to get a review or get the final approval from Committers.
   - Please follow [ASF Code of Conduct](https://www.apache.org/foundation/policies/conduct) for all communication including (but not limited to) comments on Pull Requests, Mailing list and Slack.
   - Be sure to read the [Airflow Coding style]( https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#coding-style-and-best-practices).
   Apache Airflow is a community-driven project and together we are making it better ๐Ÿš€.
   In case of doubts contact the developers at:
   Mailing List: dev@airflow.apache.org
   Slack: https://s.apache.org/airflow-slack
   


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