Skip to content

Commit ddcaef4

Browse files
authored
Add log lookup exception for empty op subtypes (#35536)
* Add log lookup exception for empty op subtypes * Use exception catching approach instead to preserve tests
1 parent 83a3cc5 commit ddcaef4

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

airflow/utils/log/file_task_handler.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from typing import TYPE_CHECKING, Any, Callable, Iterable
3030
from urllib.parse import urljoin
3131

32+
import httpx
3233
import pendulum
3334

3435
from airflow.configuration import conf
@@ -78,8 +79,6 @@ def _set_task_deferred_context_var():
7879

7980

8081
def _fetch_logs_from_service(url, log_relative_path):
81-
import httpx
82-
8382
from airflow.utils.jwt_signer import JWTSigner
8483

8584
timeout = conf.getint("webserver", "log_fetch_timeout_sec", fallback=None)
@@ -170,6 +169,9 @@ class FileTaskHandler(logging.Handler):
170169
"""
171170

172171
trigger_should_wrap = True
172+
inherits_from_empty_operator_log_message = (
173+
"Operator inherits from empty operator and thus does not have logs"
174+
)
173175

174176
def __init__(self, base_log_folder: str, filename_template: str | None = None):
175177
super().__init__()
@@ -555,8 +557,11 @@ def _read_from_logs_server(self, ti, worker_log_rel_path) -> tuple[list[str], li
555557
messages.append(f"Found logs served from host {url}")
556558
logs.append(response.text)
557559
except Exception as e:
558-
messages.append(f"Could not read served logs: {e}")
559-
logger.exception("Could not read served logs")
560+
if isinstance(e, httpx.UnsupportedProtocol) and ti.task.inherits_from_empty_operator is True:
561+
messages.append(self.inherits_from_empty_operator_log_message)
562+
else:
563+
messages.append(f"Could not read served logs: {e}")
564+
logger.exception("Could not read served logs")
560565
return messages, logs
561566

562567
def _read_remote_logs(self, ti, try_number, metadata=None) -> tuple[list[str], list[str]]:

0 commit comments

Comments
 (0)