airflow-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <>
Subject [jira] [Commented] (AIRFLOW-1559) MySQL warnings about aborted connections, missing engine disposal
Date Sat, 02 Dec 2017 15:24:00 GMT


ASF subversion and git services commented on AIRFLOW-1559:

Commit 3bde95e599b56af9bb98caf66ac8248d6b7b9094 in incubator-airflow's branch refs/heads/master
from [~StephanErb]
[;h=3bde95e ]

[AIRFLOW-1559] Make database pooling optional

In situations where a database is heavily loaded with connections it
can be beneficial for operators to (temporarily) reduce the connection
footprint of Airflow on the database. This is particularly important
when Airflow or self-made extensions do not dispose the connection
pool when terminating.

Disabling the connection pool comes with a slowdown but that may be
acceptable in many deployment scenarios.

> MySQL warnings about aborted connections, missing engine disposal
> -----------------------------------------------------------------
>                 Key: AIRFLOW-1559
>                 URL:
>             Project: Apache Airflow
>          Issue Type: Bug
>          Components: db
>            Reporter: Daniel Huang
>            Assignee: Daniel Huang
>            Priority: Minor
>             Fix For: 1.9.1
> We're seeing a flood of warnings about aborted connections in our MySQL logs. 
> {code}
> Aborted connection 56720 to db: 'airflow' user: 'foo' host: 'x.x.x.x' (Got an error reading
communication packets)
> {code}
> It appears this is because we're not performing [engine disposal|].
The most common source of this warning is from the scheduler, when it kicks off new processes
to process the DAG files. Calling dispose in
greatly reduced these messages. However, the worker is still causing some of these, I assume
from when we spin up processes to run tasks. We do call dispose in,
but I think it's a bit early. Not sure if there's a place we can put this cleanup to ensure
it's done everywhere.
> Quick script to reproduce this warning message:
> {code}
> from airflow import settings
> from airflow.models import Connection
> session = settings.Session()
> session.query(Connection).count()
> session.close()
> # not calling settings.engine.dispose()
> {code}
> Reproduced with Airflow 1.8.1, MySQL 5.7, and SQLAlchemy 1.1.13. 

This message was sent by Atlassian JIRA

View raw message