You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Teddy Hartanto (Jira)" <ji...@apache.org> on 2020/05/14 02:52:00 UTC

[jira] [Commented] (AIRFLOW-6878) AIRFLOW__KUBERNETES__KUBE_CLIENT_REQUEST_ARGS default value misconfigured

    [ https://issues.apache.org/jira/browse/AIRFLOW-6878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17106824#comment-17106824 ] 

Teddy Hartanto commented on AIRFLOW-6878:
-----------------------------------------

Hi [~kaxilnaik], I think the root cause of the issue is actually in {{puckel/docker-airflow}}, as documented here: [puckel/docker-airflow#521|https://github.com/puckel/docker-airflow/issues/521]. I dug a bit about the history of this particular line, and it's added by the PR addressing this issue here: https://issues.apache.org/jira/browse/AIRFLOW-5282. I wonder if this should've been left as it is, ie. {{kube_client_request_args = \{{"_request_timeout" : [60,60] }}}}? Instead, the fix should've been done on the {{puckel/docker-airflow}} side

> AIRFLOW__KUBERNETES__KUBE_CLIENT_REQUEST_ARGS default value misconfigured
> -------------------------------------------------------------------------
>
>                 Key: AIRFLOW-6878
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-6878
>             Project: Apache Airflow
>          Issue Type: Bug
>          Components: configuration
>    Affects Versions: 1.10.5, 1.10.6, 1.10.7, 1.10.8, 1.10.9
>         Environment: Hardware: AWS EC2
> Kops Version 
> 1.15.2
> Helm Version:
> Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}
> Server: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}
> kubectl version
> Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.2", GitCommit:"59603c6e503c87169aea6106f57b9f242f64df89", GitTreeState:"clean", BuildDate:"2020-01-23T14:22:01Z", GoVersion:"go1.13.6", Compiler:"gc", Platform:"darwin/amd64"}
> Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.9", GitCommit:"2e808b7cb054ee242b68e62455323aa783991f03", GitTreeState:"clean", BuildDate:"2020-01-18T23:24:23Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
> Docker image for schedular/webserver:
> puckel/docker-airflow:latest
>            Reporter: Daniel Stevenson
>            Assignee: Daniel Stevenson
>            Priority: Minor
>              Labels: config, kubernetes
>             Fix For: 1.10.10
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
>  
> *Issue:*
> The `kube_client_request_args` config value in the `[kubernetes]` section of the default airflow.cfg file is misconfigured.
> *Suggested fix:*
> Set the following key value pair in the  [kubernetes] section of the file *airflow/config_templates/default_airflow.cfg,* like so:
>  
>  
> {code:java}
> kube_client_request_args = {"_request_timeout" : [60,60] }{code}
>  
> {color:#FF0000}I'd be really keen to contribute this fix!{color}
> *Open Questions:*
>  * Should we patch older versions, or just include this in the 1.10.10 release?
>  * Does someone have a hint of where other code might be affected / have this config error?
>  * Any feedback/newbie advice? This this is my first contribution here :)
> *Background:*
> In 1.10.4, this configuration was left unset.
>  
> {code:java}
> kube_client_request_args = {code}
>  
> see [https://github.com/apache/airflow/blob/1.10.4/airflow/config_templates/default_airflow.cfg#L779]
>  
> From 1.10.5 on it is configured like so:
>  
> {code:java}
> kube_client_request_args = {{"_request_timeout" : [60,60] }}{code}
>  
> see [https://github.com/apache/airflow/blob/1.10.5/airflow/config_templates/default_airflow.cfg#L805]
> *To reproduce:*
> If we run with the KubernetesExecutor using puckel/docker-airflow repository with an "otherwise working" helm stable/airflow values.yaml, the scheduler and webserver will output an error like this when running initdb (retrieved with kubectl logs):
> {code:java}
> 69f76c7dc-w9stc   
> waiting 10s...
> executing initdb
> [2020-02-22 02:07:35,810] {{settings.py:253}} INFO - settings.configure_orm(): Using pool settings. pool_size=5, max_overflow=10, pool_recycle=1800, pid=12
> DB: postgresql+psycopg2://postgres:***@airflow-dev-0-postgresql:5432/airflow
> [2020-02-22 02:07:36,332] {{db.py:368}} INFO - Creating tables
> INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
> INFO  [alembic.runtime.migration] Will assume transactional DDL.
> INFO  [alembic.runtime.migration] Running upgrade  -> e3a246e0dc1, current schema
> INFO  [alembic.runtime.migration] Running upgrade e3a246e0dc1 -> 1507a7289a2f, create is_encrypted
> INFO  [alembic.runtime.migration] Running upgrade 1507a7289a2f -> 13eb55f81627, maintain history for compatibility with earlier migrations
> INFO  [alembic.runtime.migration] Running upgrade 13eb55f81627 -> 338e90f54d61, More logging into task_instance
> INFO  [alembic.runtime.migration] Running upgrade 338e90f54d61 -> 52d714495f0, job_id indices
> INFO  [alembic.runtime.migration] Running upgrade 52d714495f0 -> 502898887f84, Adding extra to Log
> INFO  [alembic.runtime.migration] Running upgrade 502898887f84 -> 1b38cef5b76e, add dagrun
> INFO  [alembic.runtime.migration] Running upgrade 1b38cef5b76e -> 2e541a1dcfed, task_duration
> INFO  [alembic.runtime.migration] Running upgrade 2e541a1dcfed -> 40e67319e3a9, dagrun_config
> INFO  [alembic.runtime.migration] Running upgrade 40e67319e3a9 -> 561833c1c74b, add password column to user
> INFO  [alembic.runtime.migration] Running upgrade 561833c1c74b -> 4446e08588, dagrun start end
> INFO  [alembic.runtime.migration] Running upgrade 4446e08588 -> bbc73705a13e, Add notification_sent column to sla_miss
> INFO  [alembic.runtime.migration] Running upgrade bbc73705a13e -> bba5a7cfc896, Add a column to track the encryption state of the 'Extra' field in connection
> INFO  [alembic.runtime.migration] Running upgrade bba5a7cfc896 -> 1968acfc09e3, add is_encrypted column to variable table
> INFO  [alembic.runtime.migration] Running upgrade 1968acfc09e3 -> 2e82aab8ef20, rename user table
> INFO  [alembic.runtime.migration] Running upgrade 2e82aab8ef20 -> 211e584da130, add TI state index
> INFO  [alembic.runtime.migration] Running upgrade 211e584da130 -> 64de9cddf6c9, add task fails journal table
> INFO  [alembic.runtime.migration] Running upgrade 64de9cddf6c9 -> f2ca10b85618, add dag_stats table
> INFO  [alembic.runtime.migration] Running upgrade f2ca10b85618 -> 4addfa1236f1, Add fractional seconds to mysql tables
> INFO  [alembic.runtime.migration] Running upgrade 4addfa1236f1 -> 8504051e801b, xcom dag task indices
> INFO  [alembic.runtime.migration] Running upgrade 8504051e801b -> 5e7d17757c7a, add pid field to TaskInstance
> INFO  [alembic.runtime.migration] Running upgrade 5e7d17757c7a -> 127d2bf2dfa7, Add dag_id/state index on dag_run table
> INFO  [alembic.runtime.migration] Running upgrade 127d2bf2dfa7 -> cc1e65623dc7, add max tries column to task instance
> Traceback (most recent call last):
>   File "/usr/local/bin/airflow", line 37, in <module>
>     args.func(args)
>   File "/usr/local/lib/python3.7/site-packages/airflow/bin/cli.py", line 1140, in initdb
>     db.initdb(settings.RBAC)
>   File "/usr/local/lib/python3.7/site-packages/airflow/utils/db.py", line 106, in initdb
>     upgradedb()
>   File "/usr/local/lib/python3.7/site-packages/airflow/utils/db.py", line 376, in upgradedb
>     command.upgrade(config, 'heads')
>   File "/usr/local/lib/python3.7/site-packages/alembic/command.py", line 298, in upgrade
>     script.run_env()
>   File "/usr/local/lib/python3.7/site-packages/alembic/script/base.py", line 489, in run_env
>     util.load_python_file(self.dir, "env.py")
>   File "/usr/local/lib/python3.7/site-packages/alembic/util/pyfiles.py", line 98, in load_python_file
>     module = load_module_py(module_id, path)
>   File "/usr/local/lib/python3.7/site-packages/alembic/util/compat.py", line 173, in load_module_py
>     spec.loader.exec_module(module)
>   File "<frozen importlib._bootstrap_external>", line 728, in exec_module
>   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
>   File "/usr/local/lib/python3.7/site-packages/airflow/migrations/env.py", line 96, in <module>
>     run_migrations_online()
>   File "/usr/local/lib/python3.7/site-packages/airflow/migrations/env.py", line 90, in run_migrations_online
>     context.run_migrations()
>   File "<string>", line 8, in run_migrations
>   File "/usr/local/lib/python3.7/site-packages/alembic/runtime/environment.py", line 846, in run_migrations
>     self.get_context().run_migrations(**kw)
>   File "/usr/local/lib/python3.7/site-packages/alembic/runtime/migration.py", line 518, in run_migrations
>     step.migration_fn(**kw)
>   File "/usr/local/lib/python3.7/site-packages/airflow/migrations/versions/cc1e65623dc7_add_max_tries_column_to_task_instance.py", line 70, in upgrade
>     dagbag = DagBag(settings.DAGS_FOLDER)
>   File "/usr/local/lib/python3.7/site-packages/airflow/models/dagbag.py", line 95, in __init__
>     executor = get_default_executor()
>   File "/usr/local/lib/python3.7/site-packages/airflow/executors/__init__.py", line 48, in get_default_executor
>     DEFAULT_EXECUTOR = _get_executor(executor_name)
>   File "/usr/local/lib/python3.7/site-packages/airflow/executors/__init__.py", line 87, in _get_executor
>     return KubernetesExecutor()
>   File "/usr/local/lib/python3.7/site-packages/airflow/contrib/executors/kubernetes_executor.py", line 702, in __init__
>     self.kube_config = KubeConfig()
>   File "/usr/local/lib/python3.7/site-packages/airflow/contrib/executors/kubernetes_executor.py", line 283, in __init__
>     self.kube_client_request_args = json.loads(kube_client_request_args)
>   File "/usr/local/lib/python3.7/json/__init__.py", line 348, in loads
>     return _default_decoder.decode(s)
>   File "/usr/local/lib/python3.7/json/decoder.py", line 337, in decode
>     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
>   File "/usr/local/lib/python3.7/json/decoder.py", line 353, in raw_decode
>     obj, end = self.scan_once(s, idx)
> json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
> {code}
>  
> *On StackOverflow:*
>  
> This was reported for versions 1.10.8 and 1.10.9 in this stackoverflow issue: [https://stackoverflow.com/questions/60130992/airflow-scheduler-fails-to-start-with-kubernetes-executor]
>  
> *Docs:*
> You can see that the airflow.apache.org docs are also affected: [https://airflow.apache.org/docs/stable/configurations-ref.html#kube-client-request-args]
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)