agreenburg opened a new issue, #42452:
URL: https://github.com/apache/airflow/issues/42452
### Apache Airflow Provider(s)
common-sql, mysql
### Versions of Apache Airflow Providers
apache-airflow-providers-common-sql 1.17.0
apache-airflow-providers-mysql 5.6.1
### Apache Airflow version
2.9.2+astro.1
### Operating System
debian astronomer/astro-runtime:11.5.0
### Deployment
Astronomer
### Deployment details
This is an Astronomer-hosted deployment. Docker image is
quay.io/astronomer/astro-runtime:11.5.0
### What happened
DAGs that interact with MySqlHook started failing after
apache-airflow-providers-common-sql was automatically upgraded from 1.16.0 to
1.17.0.
Here is an example error from the log:
```
[2024-09-24, 18:24:30 UTC] {taskinstance.py:2905} ERROR - Task failed with
exception
Traceback (most recent call last):
File
"/usr/local/lib/python3.11/site-packages/airflow/models/taskinstance.py", line
465, in _execute_task
result = _execute_callable(context=context, **execute_callable_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/usr/local/lib/python3.11/site-packages/airflow/models/taskinstance.py", line
432, in _execute_callable
return execute_callable(context=context, **execute_callable_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/usr/local/lib/python3.11/site-packages/airflow/models/baseoperator.py", line
401, in wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/usr/local/lib/python3.11/site-packages/airflow/operators/python.py", line
235, in execute
return_value = self.execute_callable()
^^^^^^^^^^^^^^^^^^^^^^^
File
"/usr/local/lib/python3.11/site-packages/airflow/operators/python.py", line
252, in execute_callable
return self.python_callable(*self.op_args, **self.op_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/airflow/dags/sftp_handler.py", line 25, in getDBConnection
return MySqlHook(connection_name).get_conn()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/usr/local/lib/python3.11/site-packages/airflow/providers/mysql/hooks/mysql.py",
line 75, in __init__
self.connection = kwargs.pop("connection", None)
^^^^^^^^^^^^^^^
AttributeError: property 'connection' of 'MySqlHook' object has no setter
```
requirements.txt had apache-airflow-providers-mysql with no version
constraint.
```
apache-airflow-providers-mysql
```
Forcing downgrade to the previous version fixes the problem and allows the
DAGs to run again:
```
apache-airflow-providers-mysql
apache-airflow-providers-common-sql <1.17
```
### What you think should happen instead
Because we are including apache-airflow-providers-mysql without a version
constraint, I would hope and expect that it would only bring in a version of
apache-airflow-providers-common-sql that is compatible with the version of
apache-airflow-providers-mysql that is being used. That does not appear to be
happening here.
### How to reproduce
1. Install these exact dependency versions:
apache-airflow-providers-common-sql 1.17.0
apache-airflow-providers-mysql 5.6.1
2. Inside a python operator, attempt to get an instance of a MysqlHook with
a named connection:
```
conn = MySqlHook("my_named_mysql_connection").get_conn()
```
This will throw an AttributeError:
```
AttributeError: property 'connection' of 'MySqlHook' object has no setter
```
### Anything else
This is consistently reproducible with the listed provider versions.
### Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
### Code of Conduct
- [X] I agree to follow this project's [Code of
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]