очистка задач воздушного потока приводит к ошибке (грибовидное облако) с TypeError: невозможно выбрать объекты SSLContext - PullRequest
0 голосов
/ 15 октября 2019

Я тестирую DAG воздушного потока (версии 1.10.5 и python 3) и заметил, что всякий раз, когда я пытаюсь очистить задачу, это приводит к грибовому облаку и говорит, что объект SSLContext не может быть сериализован.

Похоже, что это происходит независимо от состояния задачи - однако, если я вручную пометил как Неудачный, а затем Очистил, похоже, что он работает нормально.

Не уверен, что происходит, - любое пониманиена это будет больше всего признателен! Спасибо

Трассировка:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.6/site-packages/flask_admin/base.py", line 69, in inner
    return self._run_view(f, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/flask_admin/base.py", line 368, in _run_view
    return fn(self, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/flask_login/utils.py", line 258, in decorated_view
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/airflow/www/utils.py", line 281, in wrapper
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/airflow/www/utils.py", line 328, in wrapper
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/airflow/www/views.py", line 1261, in clear
    include_upstream=upstream)
  File "/usr/local/lib/python3.6/site-packages/airflow/models/dag.py", line 1051, in sub_dag
    for t in regex_match + also_include}
  File "/usr/local/lib/python3.6/site-packages/airflow/models/dag.py", line 1051, in <dictcomp>
    for t in regex_match + also_include}
  File "/usr/local/lib/python3.6/copy.py", line 161, in deepcopy
    y = copier(memo)
  File "/usr/local/lib/python3.6/site-packages/airflow/models/baseoperator.py", line 626, in __deepcopy__
    setattr(result, k, copy.deepcopy(v, memo))
  File "/usr/local/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/lib/python3.6/copy.py", line 169, in deepcopy
    rv = reductor(4)
TypeError: can't pickle SSLContext objects

- РЕДАКТИРОВАТЬ -

Итак, я больше копался и думаю, что это потому, что задача в моей DAG использует googleads, чтобы сделатьпризывает его API. Эта библиотека использует SSLContext, и, похоже, именно это и является причиной этой проблемы (https://github.com/googleads/googleads-python-lib/blob/f070075a081cf2b32fd3d3b1b34b3e3770858c52/googleads/common.py#L440)

Не уверен, но есть ли в коде приложения воздушного потока решение этой проблемы?

...