我正在Celery Executor上运行Airflow 1.9.0。我有两台服务器-一台正在运行调度程序,Web服务器和worker 1,另一台服务器正在运行worker 2和Web服务器。
最近,我们开始面临调度程序崩溃的问题,并且日志显示SQL Server task_instance表中存在死锁,请跟踪下面。
到目前为止,我尝试减少调度程序进程的数量,并且还配置为在sqlAlchemy连接池中只有一个数据库连接,但是没有运气。死锁会发生什么原因?
sqlalchemy.exc.ProgrammingError:(pyodbc.ProgrammingError)('42000', '[42000] [FreeTDS] [SQL Server]事务(进程ID 653)为 被另一个进程锁定在锁定资源上,已被选择 作为僵局的受害者。重新运行事务。 (1205) (SQLExecDirectW)')
[SQL:'UPDATE task_instance SET状态=?从task_instance,dag_run 在哪里task_instance.dag_id IN(?)和task_instance.state IN(?,?) AND dag_run.dag_id = task_instance.dag_id AND dag_run.execution_date = task_instance.execution_date和dag_run.state!=?'] [参数: (无,'generate-xml-report','queue','scheduled','running')]
(此错误的背景位于:http://sqlalche.me/e/f405)