You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "YahelyUshpiz (via GitHub)" <gi...@apache.org> on 2025/12/02 10:05:46 UTC

[PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

YahelyUshpiz opened a new pull request, #58931:
URL: https://github.com/apache/airflow/pull/58931

   The [extract_xcom_kill] method previously used  to identify and kill the sidecar process. However, the  implementation in some Alpine/BusyBox versions does not support the  flag, causing the command to fail and the sidecar to hang indefinitely. This commit replaces the  command with a portable shell loop that iterates over  to identify processes owned by the current user. This ensures compatibility with all Alpine versions and removes the dependency on .
   
   <!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
   
      http://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
    -->
   
   <!--
   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 an 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/
   -->
   
   
   
   <!-- Please keep an empty line above the dashes. -->
   ---
   
   Bug Report: KubernetesPodOperator XCom Sidecar Hangs due to pgrep missing -u option
   Title
   KubernetesPodOperator XCom sidecar hangs indefinitely because "pgrep -u" is not supported in some Alpine versions
   
   Description
   The KubernetesPodOperator injects a sidecar container to capture XCom values. Once the main container completes, Airflow attempts to terminate this sidecar to allow the Pod to complete.
   
   The termination logic in PodManager.extract_xcom_kill executes the following command inside the sidecar:
   
   kill -2 $(pgrep -u $(id -u) -f 'sh')
   
   This command relies on pgrep supporting the -u (user) flag to filter processes by the current user. However, many lightweight container images used for sidecars (like alpine) use BusyBox's implementation of pgrep. Some versions of BusyBox pgrep do not support the -u flag, causing the command to fail with an invalid option error.
   
   As a result:
   The kill command fails.
   The sidecar container continues running (executing its infinite sleep loop).
   The Pod remains in the Running phase.
   The Airflow task eventually times out despite the main work completing successfully.
   Impact:
   Task Hangs: Tasks that successfully finish their work will hang until the operator times out and causing task to fail.
   False Failures: Successful tasks are marked as failed due to timeout.
   
   **^ Add meaningful description above**
   Read the **[Pull Request Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)** for more information.
   In case of fundamental code changes, an Airflow Improvement Proposal ([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+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 newsfragment file, named `{pr_number}.significant.rst` or `{issue_number}.significant.rst`, in [airflow-core/newsfragments](https://github.com/apache/airflow/tree/main/airflow-core/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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3623154233

   I think this script should generally follow the original script with `-u` and fallback to alpine way if it fails, or detect busybox/alpine and use alpine-specific way. going through all processes in /proc in bash might take a long time potentially


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-4041782464

   Hi maintainer, this PR was merged without a milestone set.
   We've automatically set the milestone to **[Airflow 3.1.9](https://github.com/apache/airflow/milestone/134)** based on: backport label targeting v3-1-test
   If this milestone is not correct, please update it to the appropriate milestone.
   
   > This comment was generated by [Milestone Tag Assistant](https://github.com/apache/airflow/blob/main/.github/workflows/milestone-tag-assistant.yml).
   


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "YahelyUshpiz (via GitHub)" <gi...@apache.org>.
YahelyUshpiz commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3707094478

   I agree, I'll convert to it into exception and try/catch.


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "YahelyUshpiz (via GitHub)" <gi...@apache.org>.
YahelyUshpiz commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3765351963

   > Still failing
   
   Fixed


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk merged PR #58931:
URL: https://github.com/apache/airflow/pull/58931


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "jscheffl (via GitHub)" <gi...@apache.org>.
jscheffl commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3855800405

   > > I am not sure.
   > > Have you considered the option to update the Alpine image? Why should we support an older version if there is a new out? This is already ~3 years old...
   > 
   > Upgrading the image does solve the issue in this case, but since there isn’t a compatibility matrix for the XCom sidecar and users can specify any version, it might be better to implement a generic fallback. Having the user manually configure the kill command could add unnecessary friction to the user experience.
   
   For me this is not fully convincing. If you assume somebody is updating providers to have this convenience why not expecting to also update Alpine image? Is there a reason to use the 3y old image?


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "eladkal (via GitHub)" <gi...@apache.org>.
eladkal commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-4041875859

   This is provider only.
   No backport needed


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-4041777050

   > > > I am not sure.
   > > > Have you considered the option to update the Alpine image? Why should we support an older version if there is a new out? This is already ~3 years old...
   > > 
   > > 
   > > Upgrading the image does solve the issue in this case, but since there isn’t a compatibility matrix for the XCom sidecar and users can specify any version, it might be better to implement a generic fallback. Having the user manually configure the kill command could add unnecessary friction to the user experience.
   > 
   > For me this is not fully convincing. If you assume somebody is updating providers to have this convenience why not expecting to also update Alpine image? Is there a reason to use the 3y old image?
   
   I am fine with it - as long as it is fallback 


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "jscheffl (via GitHub)" <gi...@apache.org>.
jscheffl commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3765764521

   One general question: You say "some Alpine versions" - do you know which? Is it then in general rather advisable to prevent usage of these versions?
   On the other hand if you know this is happening in your environment, ist this then not for all Pods? Should the kill command for this case maybe made configurable that you can override it in your environment and it is in general configurable (e.g. on the default kubernetes connection like the Alpine image?


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-4041784791

   ### Backport successfully created: v3-1-test
   
   Note: As of [Merging PRs targeted for Airflow 3.X](https://github.com/apache/airflow/blob/main/dev/README_AIRFLOW3_DEV.md#merging-prs-targeted-for-airflow-3x)
   the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.
   
   In matter of doubt please ask in [#release-management](https://apache-airflow.slack.com/archives/C03G9H97MM2) Slack channel.
   
   <table>
           <tr>
           <th>Status</th>
           <th>Branch</th>
           <th>Result</th>
       </tr>
       <tr>
           <td>✅</td>
           <td>v3-1-test</td>
           <td><a href="https://github.com/apache/airflow/pull/63379"><img src="https://img.shields.io/badge/PR-63379-blue" alt="PR Link"></a></td>
       </tr>
   </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.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3719267975

   Still failing


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "Nataneljpwd (via GitHub)" <gi...@apache.org>.
Nataneljpwd commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3707075451

   Maybe it is also worth to add a test so that we can avoid regression in the future


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "YahelyUshpiz (via GitHub)" <gi...@apache.org>.
YahelyUshpiz commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3798398770

   > I am not sure.
   > 
   > Have you considered the option to update the Alpine image? Why should we support an older version if there is a new out? This is already ~3 years old...
   
   Upgrading the image does solve the issue in this case, but since there isn’t a compatibility matrix for the XCom sidecar and users can specify any version, it might be better to implement a generic fallback. Having the user manually configure the kill command could add unnecessary friction to the user experience.


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "boring-cyborg[bot] (via GitHub)" <gi...@apache.org>.
boring-cyborg[bot] commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-4041777717

   Awesome work, congrats on your first merged pull request! You are invited to check our [Issue Tracker](https://github.com/apache/airflow/issues) for additional contributions.
   


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "Nataneljpwd (via GitHub)" <gi...@apache.org>.
Nataneljpwd commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3866506713

   Maybe a good idea might be to add a compatibility matrix in the docs?
   I think it can also aid in solving the issue


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "Nataneljpwd (via GitHub)" <gi...@apache.org>.
Nataneljpwd commented on code in PR #58931:
URL: https://github.com/apache/airflow/pull/58931#discussion_r2658935734


##########
providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/utils/pod_manager.py:
##########
@@ -907,27 +907,39 @@ def extract_xcom_kill(self, pod: V1Pod):
                 _preload_content=False,
             )
         ) as resp:
-            self._exec_pod_command(resp, "kill -2 $(pgrep -u $(id -u) -f 'sh')")
-
-    def _exec_pod_command(self, resp, command: str) -> str | None:
+            xcom_kill_command = "kill -2 $(pgrep -u $(id -u) -f 'sh')"
+            # fallback command for containers that don't support pgrep -u
+            fallback_xcom_kill_command = (
+                "for f in /proc/[0-9]*/comm; do "
+                "[ -O $f ] && read c < $f && [ \"$c\" = \"sh\" ] && pid=${f%/comm} && kill -2 ${pid##*/}; "
+                "done"
+            )
+            result, error = self._exec_pod_command(resp, xcom_kill_command)
+            
+            if error:
+                self.log.info("Primary kill command failed, trying fallback command")

Review Comment:
   More of a warning rather than an info in my opinion 



##########
providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/utils/pod_manager.py:
##########
@@ -907,27 +907,39 @@ def extract_xcom_kill(self, pod: V1Pod):
                 _preload_content=False,
             )
         ) as resp:
-            self._exec_pod_command(resp, "kill -2 $(pgrep -u $(id -u) -f 'sh')")
-
-    def _exec_pod_command(self, resp, command: str) -> str | None:
+            xcom_kill_command = "kill -2 $(pgrep -u $(id -u) -f 'sh')"
+            # fallback command for containers that don't support pgrep -u
+            fallback_xcom_kill_command = (
+                "for f in /proc/[0-9]*/comm; do "
+                "[ -O $f ] && read c < $f && [ \"$c\" = \"sh\" ] && pid=${f%/comm} && kill -2 ${pid##*/}; "
+                "done"
+            )
+            result, error = self._exec_pod_command(resp, xcom_kill_command)
+            
+            if error:
+                self.log.info("Primary kill command failed, trying fallback command")
+                self._exec_pod_command(resp, fallback_xcom_kill_command)
+
+    def _exec_pod_command(self, resp, command: str) -> tuple[str | None, str | None]:

Review Comment:
   Why add another return param instead of throwing an exception on error?



##########
providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/utils/pod_manager.py:
##########
@@ -907,27 +907,39 @@ def extract_xcom_kill(self, pod: V1Pod):
                 _preload_content=False,
             )
         ) as resp:
-            self._exec_pod_command(resp, "kill -2 $(pgrep -u $(id -u) -f 'sh')")
-
-    def _exec_pod_command(self, resp, command: str) -> str | None:
+            xcom_kill_command = "kill -2 $(pgrep -u $(id -u) -f 'sh')"
+            # fallback command for containers that don't support pgrep -u
+            fallback_xcom_kill_command = (
+                "for f in /proc/[0-9]*/comm; do "
+                "[ -O $f ] && read c < $f && [ \"$c\" = \"sh\" ] && pid=${f%/comm} && kill -2 ${pid##*/}; "
+                "done"
+            )
+            result, error = self._exec_pod_command(resp, xcom_kill_command)
+            
+            if error:
+                self.log.info("Primary kill command failed, trying fallback command")
+                self._exec_pod_command(resp, fallback_xcom_kill_command)
+
+    def _exec_pod_command(self, resp, command: str) -> tuple[str | None, str | None]:
+        """Execute a command in the pod and return the result and error (result, error)."""
         res = ""
+        error_res = ""
         if not resp.is_open():
-            return None
+            return None, None
         self.log.info("Running command... %s", command)
         resp.write_stdin(f"{command}\n")
         while resp.is_open():
             resp.update(timeout=1)
             while resp.peek_stdout():
                 res += resp.read_stdout()
-            error_res = ""
             while resp.peek_stderr():
                 error_res += resp.read_stderr()
             if error_res:
                 self.log.info("stderr from command: %s", error_res)
                 break
             if res:
-                return res
-        return None
+                return res, error_res or None

Review Comment:
   You might not need to convert to None here as "" will evaluate to false



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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "YahelyUshpiz (via GitHub)" <gi...@apache.org>.
YahelyUshpiz commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3767246620

   > One general question: You say "some Alpine versions" - do you know which? Is it then in general rather advisable to prevent usage of these versions? On the other hand if you know this is happening in your environment, ist this then not for all Pods? Should the kill command for this case maybe made configurable that you can override it in your environment and it is in general configurable (e.g. on the default kubernetes connection like the Alpine image?
   
   On Alpine versions older than 3.14 the "-u" flag in "pgrep" doesn't exist, and it happened because the xcom sidecar image was specifically set to this version.
   It is an old version, and I agree that the solution may be just to upgrade the xcom sidecar image, but im my opinion if Airflow gives the user the option to set the xcom sidecar image - a better user experience would be to handle this fallback inside Airflow instead of handing it to the client.
   Also, this solution gives the most generic fallback (deleting the actual proc files), and is suitable if more cases similar to this will happen in the future.


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "jscheffl (via GitHub)" <gi...@apache.org>.
jscheffl commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3797288369

   I am not sure.
   
   Have you considered the option to update the Alpine image? Why should we support an older version if there is a new out? This is already ~3 years old...


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


Re: [PR] Fix KubernetesPodOperator XCom sidecar hang on Alpine [airflow]

Posted by "boring-cyborg[bot] (via GitHub)" <gi...@apache.org>.
boring-cyborg[bot] commented on PR #58931:
URL: https://github.com/apache/airflow/pull/58931#issuecomment-3601220174

   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 Contributors' Guide (https://github.com/apache/airflow/blob/main/contributing-docs/README.rst)
   Here are some useful points:
   - Pay attention to the quality of your code (ruff, mypy and type annotations). Our [prek-hooks]( https://github.com/apache/airflow/blob/main/contributing-docs/08_static_code_checks.rst#prerequisites-for-prek-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/airflow-core/docs/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/dev/breeze/doc/README.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-docs/05_pull_requests.rst#coding-style-and-best-practices).
   - Always keep your Pull Requests rebased, otherwise your build might fail due to changes not related to your commits.
   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