Tobias Edvardsson created AIRFLOW-6567:
------------------------------------------
Summary: Configuration broken when using proxy_fix
Key: AIRFLOW-6567
URL: https://issues.apache.org/jira/browse/AIRFLOW-6567
Project: Apache Airflow
Issue Type: Bug
Components: webserver
Affects Versions: 1.10.7
Reporter: Tobias Edvardsson
We tried to upgrade from 1.10.6 to 1.10.7 but encountered an issue when trying
to access the webserver. We are running the solution in kubernetes at AWS
behind Kong as proxy/gateway.
1.10.6 works niceley but after the upgrade we get the following exception:
{code:java}
[2020-01-15 08:12:02 +0000] [111] [ERROR] Error handling request /1/15/2020
9:12:02 AM Traceback (most recent call last):1/15/2020 9:12:02 AM File
"/usr/local/lib/python3.7/site-packages/gunicorn/workers/sync.py", line 135, in
handle1/15/2020 9:12:02 AM self.handle_request(listener, req, client,
addr)1/15/2020 9:12:02 AM File
"/usr/local/lib/python3.7/site-packages/gunicorn/workers/sync.py", line 176, in
handle_request1/15/2020 9:12:02 AM respiter = self.wsgi(environ,
resp.start_response)1/15/2020 9:12:02 AM File
"/usr/local/lib/python3.7/site-packages/werkzeug/middleware/dispatcher.py",
line 66, in __call__1/15/2020 9:12:02 AM return app(environ,
start_response)1/15/2020 9:12:02 AM File
"/usr/local/lib/python3.7/site-packages/flask/app.py", line 2463, in
__call__1/15/2020 9:12:02 AM return self.wsgi_app(environ,
start_response)1/15/2020 9:12:02 AM File
"/usr/local/lib/python3.7/site-packages/werkzeug/middleware/proxy_fix.py", line
195, in __call__1/15/2020 9:12:02 AM x_for =
self._get_trusted_comma(self.x_for,
environ_get("HTTP_X_FORWARDED_FOR"))1/15/2020 9:12:02 AM File
"/usr/local/lib/python3.7/site-packages/werkzeug/middleware/proxy_fix.py", line
166, in _get_trusted_comma1/15/2020 9:12:02 AM if len(values) >=
trusted:1/15/2020 9:12:02 AM TypeError: '>=' not supported between instances of
'int' and 'str'
{code}
>From my own investigation the issue seem to be the new configuration options
>for the proxy where the configuration which are fetched returns strings rather
>then integers as it should.
[https://github.com/apache/airflow/pull/6723]
{code:java}
x_for=conf.get("webserver", "PROXY_FIX_X_FOR", fallback=1),
x_proto=conf.get("webserver", "PROXY_FIX_X_PROTO", fallback=1),
x_host=conf.get("webserver", "PROXY_FIX_X_HOST", fallback=1),
x_port=conf.get("webserver", "PROXY_FIX_X_PORT", fallback=1),
x_prefix=conf.get("webserver", "PROXY_FIX_X_PREFIX", fallback=1)
{code}
(row 51-56 in airflow/www/app.py)
The following values are expected to be integers and not strings.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)