VergeDX opened a new issue, #34228:
URL: https://github.com/apache/airflow/issues/34228

   ### Apache Airflow version
   
   2.7.1
   
   ### What happened
   
   At airflow log view (DAG -> task -> log) of `EmptyOperator`, an error shows 
in window:
   
   ```
   *** Could not read served logs: Request URL is missing an 'http://' or 
'https://' protocol.
   ```
   
   Full trace in console:
   
   ```
    webserver | [2023-09-09T09:26:47.632+0800] {file_task_handler.py:524} ERROR 
- Could not read served logs
    webserver | Traceback (most recent call last):
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_transports/default.py",
 line 60, in map_httpcore_exceptions
    webserver | yield
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_transports/default.py",
 line 218, in handle_request
    webserver | resp = self._pool.handle_request(req)
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py",
 line 214, in handle_request
    webserver | raise UnsupportedProtocol(
    webserver | httpcore.UnsupportedProtocol: Request URL is missing an 
'http://' or 'https://' protocol.
    webserver |
    webserver | The above exception was the direct cause of the following 
exception:
    webserver |
    webserver | Traceback (most recent call last):
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/airflow/utils/log/file_task_handler.py",
 line 507, in _read_from_logs_server
    webserver | response = _fetch_logs_from_service(url, rel_path)
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/airflow/utils/log/file_task_handler.py",
 line 90, in _fetch_logs_from_service
    webserver | response = httpx.get(
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_api.py",
 line 189, in get
    webserver | return request(
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_api.py",
 line 100, in request
    webserver | return client.request(
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_client.py",
 line 814, in request
    webserver | return self.send(request, auth=auth, 
follow_redirects=follow_redirects)
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_client.py",
 line 901, in send
    webserver | response = self._send_handling_auth(
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_client.py",
 line 929, in _send_handling_auth
    webserver | response = self._send_handling_redirects(
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_client.py",
 line 966, in _send_handling_redirects
    webserver | response = self._send_single_request(request)
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_client.py",
 line 1002, in _send_single_request
    webserver | response = transport.handle_request(request)
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_transports/default.py",
 line 217, in handle_request
    webserver | with map_httpcore_exceptions():
    webserver | File 
"/nix/store/bc45k1n0pkrdkr3xa6w84w1xhkl1kkyp-python3-3.10.12/lib/python3.10/contextlib.py",
 line 153, in __exit__
    webserver | self.gen.throw(typ, value, traceback)
    webserver | File 
"/persistent/Works/apache-airflow/venv/lib/python3.10/site-packages/httpx/_transports/default.py",
 line 77, in map_httpcore_exceptions
    webserver | raise mapped_exc(message) from exc
    webserver | httpx.UnsupportedProtocol: Request URL is missing an 'http://' 
or 'https://' protocol.
   ```
   
   
   ### What you think should happen instead
   
   Old version of airflow (I tested 2.6.0), log view of `EmptyOperator` will 
show noting,  
   I'm not sure this behavior is documented, but It caused confusion for me at 
least.
   
   
   ### How to reproduce
   
   1. I use python venv with whl in GitHub releases for installation.
   2. Run `airflow standalone` for development deploy, I also disable 
load_examples.
   3. Using `EmptyOperator` example like below, I also disable catchup of DAG:
   
   ```Python
   import datetime
   
   from airflow import DAG
   from airflow.operators.empty import EmptyOperator
   
   with DAG(
       dag_id="demo",
       start_date=datetime.datetime(2021, 1, 1),
       schedule="@daily",
       catchup=False,
   ):
       EmptyOperator(task_id="demo")
   ```
   
   4. Enable the DAG in airflow webserver, wait it for a run.
   5. Navigate to demo dag, demo task; press log view at toolbar.
   
   
   ### Operating System
   
   NixOS 23.05 (Stoat)
   
   ### Versions of Apache Airflow Providers
   
   ```
   apache-airflow-providers-common-sql==1.7.1
   apache-airflow-providers-ftp==3.5.1
   apache-airflow-providers-http==4.5.1
   apache-airflow-providers-imap==3.3.1
   apache-airflow-providers-sqlite==3.4.3
   ```
   
   
   ### Deployment
   
   Virtualenv installation
   
   ### Deployment details
   
   Our enterprise internal deployment using modified docker-compose, version 
2.7.0 shows the same issue.
   But our old 2.5.2 venv deployment works fine. `EmptyOperator` shows nothing 
as normal.
   
   
   ### Anything else
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to