Я обновляю наш экземпляр Airflow с 1.9 до 1.10.3, и всякий раз, когда запускается планировщик, я получаю предупреждение о том, что соединение с базой данных было недействительным, и оно пытается восстановить соединение. Куча этих ошибок появляется подряд. Консоль также указывает, что задачи планируются, но если я проверяю базу данных, ничего не пишется.
Следующее предупреждение показывает, где это не было раньше
[2019-05-21 17:29:26,017] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting...
В конце концов, я также получу эту ошибку
FATAL: remaining connection slots are reserved for non-replication superuser connections
Я пытался увеличить настройку размера пула SQL-алхимии в airflow.cfg
, но это не дало эффекта
# The SqlAlchemy pool size is the maximum number of database connections in the pool.
sql_alchemy_pool_size = 10
Я использую CeleryExecutor и думаю, что, возможно, число работников перегружает соединения с базой данных.
Я запускаю три команды, airflow webserver
, airflow scheduler
и airflow worker
, поэтому должен быть только один работник, и я не понимаю, почему это приведет к перегрузке базы данных.
Как устранить ошибки подключения к базе данных? Есть ли настройка для увеличения количества соединений с базой данных, если да, то где это? Нужно ли обращаться с рабочими по-другому?
Обновление:
Даже если работники не работают, при запуске веб-сервера и планировщика заново, когда планировщик заполняет пулы воздушных потоков, начинает появляться предупреждение о подключении к БД.
Обновление 2:
Я обнаружил следующую проблему в Airflow Jira: https://issues.apache.org/jira/browse/AIRFLOW-4567
Некоторые люди говорят, что видят ту же проблему. Неясно, является ли это прямым причиной сбоев, которые видят некоторые люди, или это просто надоедливый косметический журнал. На данный момент нет решения этой проблемы.