Bug #66863 mysqldiff and mysqldbcompare Fail

Submitted: 18 Sep 2012 22:34 Modified: 24 May 2013 19:49
Reporter: Muiz Motani Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Utilities Severity:S2 (Serious)
Version:5.2.43 OS:MacOS (10.6.8)
Assigned to: CPU Architecture:Any
Tags: mysqldbcompare, mysqldiff

[18 Sep 2012 22:34] Muiz Motani
Description:
The mysqldiff and mysqldbcompare utilities both fail with "AttributeError: 'Server' object has no attribute 'name'". The complete traceback is:

# server1 on 192.168.0.117: ... connected.
Traceback (most recent call last):
  File "/Applications/MySQLWorkbench.app/Contents/Resources/scripts/mysqldbcompare", line 160, in <module>
    parts[0], parts[1], options)
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/mysql_libs.zip/mysql/utilities/command/dbcompare.py", line 414, in database_compare
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/mysql_libs.zip/mysql/utilities/common/dbcompare.py", line 186, in server_connect
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/mysql_libs.zip/mysql/utilities/common/server.py", line 333, in connect_servers
AttributeError: 'Server' object has no attribute 'name'

How to repeat:
execute a mysqldiff or mysqldbcompare on two databases on the same server
[21 Sep 2012 13:54] Chuck Bell
Please include the command you used to launch the utilities so that we can successfully repeat this error.
[4 Oct 2012 22:30] Elan Ruusamäe
the problem is that the code refers to .name which does not exist

error is triggered if client connects to server which version is older than client:

./mysql/utilities/common/server.py :
 330     if not _require_version(source, version):
 331         raise UtilError("The %s version is incompatible. Utility "
 332                         "requires version %s or higher." %
 333                         (source.name, version))

the source.name is what gives the AttributeError

it happpens with mysql-utilities 1.1.0 as well (mysql workench 5.2.44)
[4 Oct 2012 22:49] Elan Ruusamäe
not sure what was intended there in the code, but so far i made it print server.host:

http://git.pld-linux.org/?p=packages/mysql-utilities.git;a=blob;f=bug-66863.patch;h=21ba25...
[4 Oct 2012 22:51] Elan Ruusamäe
now prints instead of python exception:

$ mysqldiskusage --server=mysql@elfride:3306  -vvv
# Source on elfride: ... connected.
Usage: mysqldiskusage --server=user:pass@host:port:socket db1 --all

mysqldiskusage: error: The elfride version is incompatible. Utility requires version 5.1.30 or higher.
[24 May 2013 19:49] Chuck Bell
Fixed in release-1.1.1

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.053 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.