Page MenuHomePhabricator

Check why compare.py doesn't work with Percona 8.0
Closed, ResolvedPublic

Description

While mysql.py works perfectly fine when connecting from cumin1001 to db1114 (Percona 8), I have been unable to find why compare.py doesn't work after a few checks (users, passwords, reverse IPs, auth methods..)

I have tried different debugs and also verifying the existing users in db1114 and changed their login to native_password instead of the one used by default. However, it looks like compare.py fails to connect to db1114.

Creating this task to make sure we don't forget about it as furthertroubleshooting is required.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald TranscriptJan 21 2020, 8:07 AM
Marostegui triaged this task as Medium priority.Jan 21 2020, 8:08 AM
Marostegui moved this task from Triage to Backlog on the DBA board.
Marostegui renamed this task from Make compare.py work with Percona 8.0 to Check why compare.py doesn't work with Percona 8.0.Jan 21 2020, 8:20 AM
jcrespo claimed this task.Mar 26 2020, 2:30 PM

Running connect manually:

'success': False, 'database': None, 'errno': 1043, 'port': 3306, 'errmsg': 'Bad handshake'
root@db1114:~$ python3
Python 3.7.3 (default, Dec 20 2019, 18:57:59) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from WMFMariaDB import WMFMariaDB
>>> db=WMFMariaDB('db1114', debug=True)
Connected to db1114/(none)
>>> db.execute('SELECT 1')
Executing 'SELECT 1'
{'query': 'SELECT 1', 'host': 'db1114.eqiad.wmnet', 'port': 3306, 'database': None, 'success': True, 'numrows': 1, 'rows': ((1,),), 'fields': ('1',)}

Buster libs seem to work. But mariadb client doesn't work either, you have to connect with the percona/mysql client. I will double check it is not specific to this user I created, but it seems it requires cumin to be upgraded for the new client library to work:

python3-pymysql
Buster:
Version: 0.9.3-1

Stretch:
Version: 0.7.10-1
jcrespo closed this task as Resolved.EditedMar 26 2020, 2:55 PM
jcrespo added a subscriber: Muehlenhoff.

We need a version of the mysql connector higher than python3-pymysql 0.9.8 for compatibility of the new mysql authentication protocol on latest versions. Either backporting, or (more probably) the buster upgrade on cumin will transparently take care of it. CC @Volans @Muehlenhoff.

jcrespo added a subscriber: Volans.Mar 26 2020, 2:56 PM

The Cumin update is something that will happen next Q, but if you need it earlier, we can backport it as well?

Not worth the work. This is not blocking anything important- that is why I just closed it. This was a FYI, to both cumin and/or deb monitor owners. This was the first time I realized this incompatibility on this connector, so I thought it was important to make it aware beyond DBAs.