2023-01-25 03:48:20 |
Trent Lloyd |
bug |
|
|
added bug |
2023-01-25 04:34:24 |
Launchpad Janitor |
mysql-8.0 (Ubuntu): status |
New |
Confirmed |
|
2023-01-25 04:57:31 |
Nobuto Murata |
bug |
|
|
added subscriber Nobuto Murata |
2023-01-25 09:01:41 |
James Page |
bug |
|
|
added subscriber Ubuntu Security Team |
2023-01-25 09:01:44 |
James Page |
mysql-8.0 (Ubuntu): importance |
Undecided |
Critical |
|
2023-01-25 09:09:08 |
James Page |
tags |
|
regression-update |
|
2023-01-25 09:14:54 |
Trent Lloyd |
description |
This is an investigation bug for the following error that has started to appear during juju-openstack deployments:
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-'
It appears to correlate with MySQL 8.0.32 being published into -security today (Jan 24th/25th).
I have not yet fully investigated the cause etc but wanted to open a tracking bug to discuss it.
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
return fn()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 371, in __init__
self.__connect()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 665, in __connect
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 597, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 353, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/lib/python3/dist-packages/pymysql/_auth.py", line 257, in caching_sha2_password_auth
raise OperationalError(
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-' |
After upgrading and restarting both mysql-router (does not happen automatically) and mysql server (does happen automatically) to the new 8.0.32 version clients using the pymysql library and connecting via mysql-router will fail to connect with the following error:
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-'
8.0.32 was published into -security today (Jan 24th/25th). As a result both mysql-router and mysql-server get upgraded by unattended-upgrades.
This does not happen on 8.0.31
This affects charmed openstack deployments on focal+jammy, database authentication doesn't work out of the box on new installs and fails on upgraded installs.
[Workaround]
Install the MySQL CLI and then manually connect to the server with each user/password combination in the environment. This will cache the password in the server's memory which triggers a different code path that avoids the issue.
If the MySQL server fails over or is restarted the cache is lost and clients will fail to connect again.
[Traceback]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
return fn()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 371, in __init__
self.__connect()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 665, in __connect
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 597, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 353, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/lib/python3/dist-packages/pymysql/_auth.py", line 257, in caching_sha2_password_auth
raise OperationalError(
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-' |
|
2023-01-25 09:38:49 |
Trent Lloyd |
description |
After upgrading and restarting both mysql-router (does not happen automatically) and mysql server (does happen automatically) to the new 8.0.32 version clients using the pymysql library and connecting via mysql-router will fail to connect with the following error:
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-'
8.0.32 was published into -security today (Jan 24th/25th). As a result both mysql-router and mysql-server get upgraded by unattended-upgrades.
This does not happen on 8.0.31
This affects charmed openstack deployments on focal+jammy, database authentication doesn't work out of the box on new installs and fails on upgraded installs.
[Workaround]
Install the MySQL CLI and then manually connect to the server with each user/password combination in the environment. This will cache the password in the server's memory which triggers a different code path that avoids the issue.
If the MySQL server fails over or is restarted the cache is lost and clients will fail to connect again.
[Traceback]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
return fn()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 371, in __init__
self.__connect()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 665, in __connect
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 597, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 353, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/lib/python3/dist-packages/pymysql/_auth.py", line 257, in caching_sha2_password_auth
raise OperationalError(
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-' |
After upgrading and restarting both mysql-router (does not happen automatically) and mysql server (does happen automatically) to the new 8.0.32 version clients using the pymysql library and connecting via mysql-router will fail to connect with the following error:
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-'
8.0.32 was published into -security today (Jan 24th/25th). As a result both mysql-router and mysql-server get upgraded by unattended-upgrades.
This does not happen on 8.0.31
This affects charmed openstack deployments on focal+jammy, database authentication doesn't work out of the box on new installs and fails on upgraded installs.
[Workaround]
Downgrade mysql-router to 8.0.31
Focal (20.04) amd64: https://launchpad.net/ubuntu/+source/mysql-8.0/8.0.31-0ubuntu0.20.04.2/+build/24823714/+files/mysql-router_8.0.31-0ubuntu0.20.04.2_amd64.deb
Jammy (22.04) amd64: https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/25502561/+files/mysql-router_8.0.32-0buntu0.22.04.1_amd64.deb
Download and install the package, then restart the mysql-router service
systemctl restart *-mysql-router
Alternatively:
Install the MySQL CLI and then manually connect to the server with each user/password combination in the environment. This will cache the password in the server's memory which triggers a different code path that avoids the issue.
If the MySQL server fails over or is restarted the cache is lost and clients will fail to connect again.
[Traceback]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
return fn()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 371, in __init__
self.__connect()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 665, in __connect
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 597, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 353, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/lib/python3/dist-packages/pymysql/_auth.py", line 257, in caching_sha2_password_auth
raise OperationalError(
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-' |
|
2023-01-25 09:41:32 |
James Page |
nominated for series |
|
Ubuntu Kinetic |
|
2023-01-25 09:41:32 |
James Page |
bug task added |
|
mysql-8.0 (Ubuntu Kinetic) |
|
2023-01-25 09:41:32 |
James Page |
nominated for series |
|
Ubuntu Jammy |
|
2023-01-25 09:41:32 |
James Page |
bug task added |
|
mysql-8.0 (Ubuntu Jammy) |
|
2023-01-25 09:41:32 |
James Page |
nominated for series |
|
Ubuntu Focal |
|
2023-01-25 09:41:32 |
James Page |
bug task added |
|
mysql-8.0 (Ubuntu Focal) |
|
2023-01-25 09:41:32 |
James Page |
nominated for series |
|
Ubuntu Lunar |
|
2023-01-25 09:41:32 |
James Page |
bug task added |
|
mysql-8.0 (Ubuntu Lunar) |
|
2023-01-25 09:41:42 |
James Page |
mysql-8.0 (Ubuntu Focal): status |
New |
Confirmed |
|
2023-01-25 09:41:45 |
James Page |
mysql-8.0 (Ubuntu Jammy): status |
New |
Confirmed |
|
2023-01-25 09:41:49 |
James Page |
mysql-8.0 (Ubuntu Focal): importance |
Undecided |
Critical |
|
2023-01-25 09:41:50 |
James Page |
mysql-8.0 (Ubuntu Jammy): importance |
Undecided |
Critical |
|
2023-01-25 09:41:52 |
James Page |
mysql-8.0 (Ubuntu Kinetic): importance |
Undecided |
Critical |
|
2023-01-25 09:41:55 |
James Page |
mysql-8.0 (Ubuntu Lunar): status |
Confirmed |
New |
|
2023-01-25 09:43:56 |
DUFOUR Olivier |
attachment added |
|
mysql-test-bundle.yaml https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/2003835/+attachment/5643259/+files/mysql-test-bundle.yaml |
|
2023-01-25 09:44:29 |
DUFOUR Olivier |
attachment added |
|
test-pymysql.py https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/2003835/+attachment/5643260/+files/test-pymysql.py |
|
2023-01-25 15:54:32 |
Lars Tangvald |
attachment added |
|
fix_unencrypted_pubkeyrequest.patch https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/2003835/+attachment/5643429/+files/fix_unencrypted_pubkeyrequest.patch |
|
2023-01-25 16:25:04 |
Ubuntu Foundations Team Bug Bot |
tags |
regression-update |
patch regression-update |
|
2023-01-25 16:25:15 |
Ubuntu Foundations Team Bug Bot |
bug |
|
|
added subscriber Ubuntu Review Team |
2023-01-25 17:04:43 |
Launchpad Janitor |
mysql-8.0 (Ubuntu): status |
New |
Confirmed |
|
2023-01-25 17:04:43 |
Launchpad Janitor |
mysql-8.0 (Ubuntu Kinetic): status |
New |
Confirmed |
|
2023-01-25 17:26:31 |
Mauricio Faria de Oliveira |
bug |
|
|
added subscriber Mauricio Faria de Oliveira |
2023-01-26 13:24:56 |
Rodrigo Barbieri |
tags |
patch regression-update |
patch regression-update sts |
|
2023-01-26 14:11:31 |
Marc Deslauriers |
information type |
Public |
Public Security |
|
2023-01-26 19:55:29 |
Aleksey Morozov |
bug task added |
|
openstack (Ubuntu) |
|
2023-01-26 22:19:49 |
Launchpad Janitor |
openstack (Ubuntu): status |
New |
Confirmed |
|
2023-01-26 22:19:49 |
Launchpad Janitor |
openstack (Ubuntu Focal): status |
New |
Confirmed |
|
2023-01-26 22:19:49 |
Launchpad Janitor |
openstack (Ubuntu Jammy): status |
New |
Confirmed |
|
2023-01-26 22:19:49 |
Launchpad Janitor |
openstack (Ubuntu Kinetic): status |
New |
Confirmed |
|
2023-01-27 01:06:37 |
Trent Lloyd |
description |
After upgrading and restarting both mysql-router (does not happen automatically) and mysql server (does happen automatically) to the new 8.0.32 version clients using the pymysql library and connecting via mysql-router will fail to connect with the following error:
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-'
8.0.32 was published into -security today (Jan 24th/25th). As a result both mysql-router and mysql-server get upgraded by unattended-upgrades.
This does not happen on 8.0.31
This affects charmed openstack deployments on focal+jammy, database authentication doesn't work out of the box on new installs and fails on upgraded installs.
[Workaround]
Downgrade mysql-router to 8.0.31
Focal (20.04) amd64: https://launchpad.net/ubuntu/+source/mysql-8.0/8.0.31-0ubuntu0.20.04.2/+build/24823714/+files/mysql-router_8.0.31-0ubuntu0.20.04.2_amd64.deb
Jammy (22.04) amd64: https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/25502561/+files/mysql-router_8.0.32-0buntu0.22.04.1_amd64.deb
Download and install the package, then restart the mysql-router service
systemctl restart *-mysql-router
Alternatively:
Install the MySQL CLI and then manually connect to the server with each user/password combination in the environment. This will cache the password in the server's memory which triggers a different code path that avoids the issue.
If the MySQL server fails over or is restarted the cache is lost and clients will fail to connect again.
[Traceback]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
return fn()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 371, in __init__
self.__connect()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 665, in __connect
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 597, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 353, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/lib/python3/dist-packages/pymysql/_auth.py", line 257, in caching_sha2_password_auth
raise OperationalError(
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-' |
After upgrading and restarting both mysql-router (does not happen automatically) and mysql server (does happen automatically) to the new 8.0.32 version clients using the pymysql library and connecting via mysql-router will fail to connect with the following error:
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-'
8.0.32 was published into -security today (Jan 24th/25th). As a result both mysql-router and mysql-server get upgraded by unattended-upgrades.
This does not happen on 8.0.31
This affects charmed openstack deployments on focal+jammy, database authentication doesn't work out of the box on new installs and fails on upgraded installs.
[Workaround]
Downgrade mysql-router to 8.0.31
Focal (20.04) amd64: https://launchpad.net/ubuntu/+source/mysql-8.0/8.0.31-0ubuntu0.20.04.2/+build/24823714/+files/mysql-router_8.0.31-0ubuntu0.20.04.2_amd64.deb
Jammy (22.04) amd64: https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/24557440/+files/mysql-router_8.0.31-0ubuntu0.22.04.1_amd64.deb
Download and install the package, then restart the mysql-router service
systemctl restart *-mysql-router
Alternatively:
Install the MySQL CLI and then manually connect to the server with each user/password combination in the environment. This will cache the password in the server's memory which triggers a different code path that avoids the issue.
If the MySQL server fails over or is restarted the cache is lost and clients will fail to connect again.
[Traceback]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
return fn()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 371, in __init__
self.__connect()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 665, in __connect
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 597, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 353, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/lib/python3/dist-packages/pymysql/_auth.py", line 257, in caching_sha2_password_auth
raise OperationalError(
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-' |
|
2023-01-27 02:21:05 |
DUFOUR Olivier |
bug |
|
|
added subscriber DUFOUR Olivier |
2023-01-27 08:43:50 |
Trent Lloyd |
description |
After upgrading and restarting both mysql-router (does not happen automatically) and mysql server (does happen automatically) to the new 8.0.32 version clients using the pymysql library and connecting via mysql-router will fail to connect with the following error:
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-'
8.0.32 was published into -security today (Jan 24th/25th). As a result both mysql-router and mysql-server get upgraded by unattended-upgrades.
This does not happen on 8.0.31
This affects charmed openstack deployments on focal+jammy, database authentication doesn't work out of the box on new installs and fails on upgraded installs.
[Workaround]
Downgrade mysql-router to 8.0.31
Focal (20.04) amd64: https://launchpad.net/ubuntu/+source/mysql-8.0/8.0.31-0ubuntu0.20.04.2/+build/24823714/+files/mysql-router_8.0.31-0ubuntu0.20.04.2_amd64.deb
Jammy (22.04) amd64: https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/24557440/+files/mysql-router_8.0.31-0ubuntu0.22.04.1_amd64.deb
Download and install the package, then restart the mysql-router service
systemctl restart *-mysql-router
Alternatively:
Install the MySQL CLI and then manually connect to the server with each user/password combination in the environment. This will cache the password in the server's memory which triggers a different code path that avoids the issue.
If the MySQL server fails over or is restarted the cache is lost and clients will fail to connect again.
[Traceback]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
return fn()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 371, in __init__
self.__connect()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 665, in __connect
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 597, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 353, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/lib/python3/dist-packages/pymysql/_auth.py", line 257, in caching_sha2_password_auth
raise OperationalError(
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-' |
After upgrading and restarting both mysql-router (does not happen automatically) and mysql server (does happen automatically) to the new 8.0.32 version clients using the pymysql library and connecting via mysql-router will fail to connect with the following error:
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-'
8.0.32 was published into -security today (Jan 24th/25th). As a result both mysql-router and mysql-server get upgraded by unattended-upgrades.
This does not happen on 8.0.31
This affects charmed openstack deployments on focal+jammy, database authentication doesn't work out of the box on new installs and fails on upgraded installs.
[Workaround]
Downgrade mysql-router to 8.0.31
Focal (20.04) amd64: https://launchpad.net/ubuntu/+source/mysql-8.0/8.0.31-0ubuntu0.20.04.2/+build/24823714/+files/mysql-router_8.0.31-0ubuntu0.20.04.2_amd64.deb
Jammy (22.04) amd64: https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/24557440/+files/mysql-router_8.0.31-0ubuntu0.22.04.1_amd64.deb
Download and install the package, then restart the mysql-router service
apt install ./FILENAME.deb
systemctl restart \*-mysql-router
Alternatively:
Install the MySQL CLI and then manually connect to the server with each user/password combination in the environment. This will cache the password in the server's memory which triggers a different code path that avoids the issue.
If the MySQL server fails over or is restarted the cache is lost and clients will fail to connect again.
[Traceback]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
return fn()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 371, in __init__
self.__connect()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 665, in __connect
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 597, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 353, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/lib/python3/dist-packages/pymysql/_auth.py", line 257, in caching_sha2_password_auth
raise OperationalError(
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-' |
|
2023-01-27 09:00:23 |
Trent Lloyd |
description |
After upgrading and restarting both mysql-router (does not happen automatically) and mysql server (does happen automatically) to the new 8.0.32 version clients using the pymysql library and connecting via mysql-router will fail to connect with the following error:
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-'
8.0.32 was published into -security today (Jan 24th/25th). As a result both mysql-router and mysql-server get upgraded by unattended-upgrades.
This does not happen on 8.0.31
This affects charmed openstack deployments on focal+jammy, database authentication doesn't work out of the box on new installs and fails on upgraded installs.
[Workaround]
Downgrade mysql-router to 8.0.31
Focal (20.04) amd64: https://launchpad.net/ubuntu/+source/mysql-8.0/8.0.31-0ubuntu0.20.04.2/+build/24823714/+files/mysql-router_8.0.31-0ubuntu0.20.04.2_amd64.deb
Jammy (22.04) amd64: https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/24557440/+files/mysql-router_8.0.31-0ubuntu0.22.04.1_amd64.deb
Download and install the package, then restart the mysql-router service
apt install ./FILENAME.deb
systemctl restart \*-mysql-router
Alternatively:
Install the MySQL CLI and then manually connect to the server with each user/password combination in the environment. This will cache the password in the server's memory which triggers a different code path that avoids the issue.
If the MySQL server fails over or is restarted the cache is lost and clients will fail to connect again.
[Traceback]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
return fn()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 371, in __init__
self.__connect()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 665, in __connect
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 597, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 353, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/lib/python3/dist-packages/pymysql/_auth.py", line 257, in caching_sha2_password_auth
raise OperationalError(
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-' |
After upgrading and restarting both mysql-router (does not happen automatically) and mysql server (does happen automatically) to the new 8.0.32 version clients using the pymysql library and connecting via mysql-router will fail to connect with the following error:
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-'
8.0.32 was published into -security today (Jan 24th/25th). As a result both mysql-router and mysql-server get upgraded by unattended-upgrades.
This does not happen on 8.0.31
This affects charmed openstack deployments on focal+jammy, database authentication doesn't work out of the box on new installs and fails on upgraded installs.
[Workaround]
Downgrade mysql-router to 8.0.31.
Note: You only need to downgrade the mysql-router package only - it does not cross-depend with any other mysql package. You cannot (and should not) downgrade the server packages as the 8.0.31 server cannot open data files upgraded to 8.0.32.
Focal (20.04) amd64: https://launchpad.net/ubuntu/+source/mysql-8.0/8.0.31-0ubuntu0.20.04.2/+build/24823714/+files/mysql-router_8.0.31-0ubuntu0.20.04.2_amd64.deb
Jammy (22.04) amd64: https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/24557440/+files/mysql-router_8.0.31-0ubuntu0.22.04.1_amd64.deb
Download and install the package, then restart the mysql-router service
apt install ./FILENAME.deb
systemctl restart \*-mysql-router
Alternatively:
Install the MySQL CLI and then manually connect to the server with each user/password combination in the environment. This will cache the password in the server's memory which triggers a different code path that avoids the issue.
If the MySQL server fails over or is restarted the cache is lost and clients will fail to connect again.
[Traceback]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
return fn()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 371, in __init__
self.__connect()
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 665, in __connect
with util.safe_reraise():
File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 597, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 353, in __init__
self.connect()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/lib/python3/dist-packages/pymysql/_auth.py", line 257, in caching_sha2_password_auth
raise OperationalError(
pymysql.err.OperationalError: caching sha2: Unknown packet for public key: b'-' |
|
2023-01-27 18:02:29 |
Alexander Balderson |
tags |
patch regression-update sts |
cdo-qa foundations-engine patch regression-update sts |
|
2023-01-29 14:55:28 |
Launchpad Janitor |
mysql-8.0 (Ubuntu Focal): status |
Confirmed |
Fix Released |
|
2023-01-29 15:32:15 |
Launchpad Janitor |
mysql-8.0 (Ubuntu Kinetic): status |
Confirmed |
Fix Released |
|
2023-01-29 15:32:16 |
Launchpad Janitor |
mysql-8.0 (Ubuntu Jammy): status |
Confirmed |
Fix Released |
|
2023-01-30 02:18:42 |
Brett Milford |
bug |
|
|
added subscriber Brett Milford |
2023-01-31 15:15:27 |
Lars Tangvald |
attachment added |
|
Fix for handling unencrypted passwords with length > 20 https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/2003835/+attachment/5644152/+files/fix_unencrypted_longpass.patch |
|
2023-02-03 21:58:08 |
Launchpad Janitor |
mysql-8.0 (Ubuntu Lunar): status |
Confirmed |
Fix Released |
|
2023-08-10 18:01:29 |
Utkarsh Gupta |
openstack (Ubuntu Kinetic): status |
Confirmed |
Won't Fix |
|