This is an automated email from the ASF dual-hosted git repository.

jscheffl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 05117d0855f Fix remote-log providers not satisfying RemoteLogIO upload 
contract (#68300)
05117d0855f is described below

commit 05117d0855f46ff09f1044f4d0ce43ce9958f5d5
Author: Bugra Ozturk <[email protected]>
AuthorDate: Tue Jun 9 22:36:16 2026 +0200

    Fix remote-log providers not satisfying RemoteLogIO upload contract (#68300)
---
 .../alibaba/src/airflow/providers/alibaba/cloud/log/oss_task_handler.py | 2 +-
 .../src/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py     | 2 +-
 .../amazon/src/airflow/providers/amazon/aws/log/s3_task_handler.py      | 2 +-
 .../hdfs/src/airflow/providers/apache/hdfs/log/hdfs_task_handler.py     | 2 +-
 .../google/src/airflow/providers/google/cloud/log/gcs_task_handler.py   | 2 +-
 .../src/airflow/providers/google/cloud/log/stackdriver_task_handler.py  | 2 +-
 .../src/airflow/providers/microsoft/azure/log/wasb_task_handler.py      | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git 
a/providers/alibaba/src/airflow/providers/alibaba/cloud/log/oss_task_handler.py 
b/providers/alibaba/src/airflow/providers/alibaba/cloud/log/oss_task_handler.py
index d09261b3df9..a000c6ff01f 100644
--- 
a/providers/alibaba/src/airflow/providers/alibaba/cloud/log/oss_task_handler.py
+++ 
b/providers/alibaba/src/airflow/providers/alibaba/cloud/log/oss_task_handler.py
@@ -44,7 +44,7 @@ class OSSRemoteLogIO(LoggingMixin):  # noqa: D101
 
     processors = ()
 
-    def upload(self, path: os.PathLike | str, ti: RuntimeTI):
+    def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) -> 
None:
         """Upload the given log path to the remote storage."""
         path = Path(path)
         if path.is_absolute():
diff --git 
a/providers/amazon/src/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py
 
b/providers/amazon/src/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py
index 055cfd44933..5bc286cb963 100644
--- 
a/providers/amazon/src/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py
+++ 
b/providers/amazon/src/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py
@@ -166,7 +166,7 @@ class CloudWatchRemoteLogIO(LoggingMixin):  # noqa: D101
 
         self.handler.flush()
 
-    def upload(self, path: os.PathLike | str, ti: RuntimeTI):
+    def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) -> 
None:
         """Upload the given log path to the remote storage."""
         # No batch upload — logs stream in real-time. Flush pending events and 
clean up.
         self.close()
diff --git 
a/providers/amazon/src/airflow/providers/amazon/aws/log/s3_task_handler.py 
b/providers/amazon/src/airflow/providers/amazon/aws/log/s3_task_handler.py
index e9cc98ac632..d27530f7c87 100644
--- a/providers/amazon/src/airflow/providers/amazon/aws/log/s3_task_handler.py
+++ b/providers/amazon/src/airflow/providers/amazon/aws/log/s3_task_handler.py
@@ -46,7 +46,7 @@ class S3RemoteLogIO(LoggingMixin):  # noqa: D101
 
     processors = ()
 
-    def upload(self, path: os.PathLike | str, ti: RuntimeTI):
+    def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) -> 
None:
         """Upload the given log path to the remote storage."""
         path = pathlib.Path(path)
         if path.is_absolute():
diff --git 
a/providers/apache/hdfs/src/airflow/providers/apache/hdfs/log/hdfs_task_handler.py
 
b/providers/apache/hdfs/src/airflow/providers/apache/hdfs/log/hdfs_task_handler.py
index 970420a1e1b..22304637db2 100644
--- 
a/providers/apache/hdfs/src/airflow/providers/apache/hdfs/log/hdfs_task_handler.py
+++ 
b/providers/apache/hdfs/src/airflow/providers/apache/hdfs/log/hdfs_task_handler.py
@@ -46,7 +46,7 @@ class HdfsRemoteLogIO(LoggingMixin):  # noqa: D101
 
     processors = ()
 
-    def upload(self, path: os.PathLike | str, ti: RuntimeTI):
+    def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) -> 
None:
         """Upload the given log path to the remote storage."""
         path = Path(path)
         if path.is_absolute():
diff --git 
a/providers/google/src/airflow/providers/google/cloud/log/gcs_task_handler.py 
b/providers/google/src/airflow/providers/google/cloud/log/gcs_task_handler.py
index f9a64b4929e..42c4ba9a61b 100644
--- 
a/providers/google/src/airflow/providers/google/cloud/log/gcs_task_handler.py
+++ 
b/providers/google/src/airflow/providers/google/cloud/log/gcs_task_handler.py
@@ -70,7 +70,7 @@ class GCSRemoteLogIO(LoggingMixin):  # noqa: D101
 
     processors = ()
 
-    def upload(self, path: os.PathLike | str, ti: RuntimeTI):
+    def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) -> 
None:
         """Upload the given log path to the remote storage."""
         path = Path(path)
         if path.is_absolute():
diff --git 
a/providers/google/src/airflow/providers/google/cloud/log/stackdriver_task_handler.py
 
b/providers/google/src/airflow/providers/google/cloud/log/stackdriver_task_handler.py
index 262f141fabb..41992d98ff2 100644
--- 
a/providers/google/src/airflow/providers/google/cloud/log/stackdriver_task_handler.py
+++ 
b/providers/google/src/airflow/providers/google/cloud/log/stackdriver_task_handler.py
@@ -176,7 +176,7 @@ class StackdriverRemoteLogIO(LoggingMixin):
 
         return (proc,)
 
-    def upload(self, path: os.PathLike | str, ti: RuntimeTI) -> None:
+    def upload(self, path: os.PathLike | str, ti: RuntimeTI | None = None) -> 
None:
         """Flush the transport and optionally delete local log files."""
         self.transport.flush()
         if self.delete_local_copy:
diff --git 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/log/wasb_task_handler.py
 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/log/wasb_task_handler.py
index c32d5410b37..71704d82588 100644
--- 
a/providers/microsoft/azure/src/airflow/providers/microsoft/azure/log/wasb_task_handler.py
+++ 
b/providers/microsoft/azure/src/airflow/providers/microsoft/azure/log/wasb_task_handler.py
@@ -49,7 +49,7 @@ class WasbRemoteLogIO(LoggingMixin):  # noqa: D101
 
     processors = ()
 
-    def upload(self, path: str | os.PathLike, ti: RuntimeTI):
+    def upload(self, path: str | os.PathLike, ti: RuntimeTI | None = None) -> 
None:
         """Upload the given log path to the remote storage."""
         path = Path(path)
         if path.is_absolute():

Reply via email to