You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "HuanjieGuo (via GitHub)" <gi...@apache.org> on 2024/07/27 15:43:01 UTC

[PR] [Task] add NonCachingRotatingFileHanlder for worker task [airflow]

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

   You can see the detail in https://github.com/apache/airflow/discussions/40880
   
   * Currently, we do not have any worker log disk isolation, and a bug in a dag can write a 10Gb + file, which can cause the cluster out of service.
   
   * This PR change the **NonCachingFileHandler** ->  **NonCachingRotatingFileHandler**  in FileTaskHandler, and users can limit the log rotate size for a task.
   


-- 
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] [Task] add NonCachingRotatingFileHanlder for worker task [airflow]

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

   > Are you sure this change is going to be backwards compatible?
   
   @potiuk 
   
   the new added parameters all have default value, should not break the existed init process for **FileTaskHandler**
   
   About the running logic: 
   
   NonCachingRotatingFileHandler -> RotatingFileHandler -> BaseRotatingHandler -> FileHandler
   
   NonCachingFileHandler -> FileHandler
   
   In the **BaseRotatingHandler**
   
   ```
       def emit(self, record):
           """
           Emit a record.
   
           Output the record to the file, catering for rollover as described
           in doRollover().
           """
           try:
               if self.shouldRollover(record):
                   self.doRollover()
               logging.FileHandler.emit(self, record)
           except Exception:
               self.handleError(record)
   ```
   
   In the **RotatingFileHandler**
   
   ```
       def shouldRollover(self, record):
           """
           Determine if rollover should occur.
   
           Basically, see if the supplied record would cause the file to exceed
           the size limit we have.
           """
           if self.stream is None:                 # delay was set...
               self.stream = self._open()
           if self.maxBytes > 0:                   # are we rolling over?
               msg = "%s\n" % self.format(record)
               self.stream.seek(0, 2)  #due to non-posix-compliant Windows feature
               if self.stream.tell() + len(msg) >= self.maxBytes:
                   return 1
           return 0
   ```
   
   since the default maxBytes for this change is set to 0, so the call to the BaseRotatingHandler.emit() will directly call the   logging.FileHandler.emit(self, record).
   
   It should be the same as we directly call the NonCachingFileHandler.emit() 
   


-- 
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] [Task] add NonCachingRotatingFileHanlder for worker task [airflow]

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

   Cool!


-- 
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] [Task] add NonCachingRotatingFileHanlder for worker task [airflow]

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

   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 [pre-commits]( https://github.com/apache/airflow/blob/main/contributing-docs/08_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/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


Re: [PR] [Task] add NonCachingRotatingFileHanlder for worker task [airflow]

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

   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] [Task] add NonCachingRotatingFileHanlder for worker task [airflow]

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

   Are you sure this change is going to be backwards compatible? 


-- 
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] [Task] add NonCachingRotatingFileHanlder for worker task [airflow]

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


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