Bug #72667 mysqldbexport shows Python exception if exceed net_read_timeout
Submitted: 16 May 2014 11:23 Modified: 28 Jul 2014 9:33
Reporter: Shahriyar Rzayev Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Utilities Severity:S1 (Critical)
Version:1.3.6 OS:Linux (CentOS 6.5)
Assigned to: CPU Architecture:Any

[16 May 2014 11:23] Shahriyar Rzayev
Description:
The version of utilities:

[root@linuxsrv3 ~]# mysqluc
Launching console ...

Welcome to the MySQL Utilities Client (mysqluc) version 1.3.6

net_read_timeout value:

mysql> select @@net_read_timeout;
+--------------------+
| @@net_read_timeout |
+--------------------+
|                 30 |
+--------------------+
1 row in set (0,00 sec)

Create user on MySQL 5.6.17:

mysql> CREATE USER 'repl'@'%' IDENTIFIED BY '$Slavepass45#';
Query OK, 0 rows affected (0,00 sec)

mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repl'@'%'
    -> ;
Query OK, 0 rows affected (0,00 sec)

mysql> CREATE USER 'remote'@'%' IDENTIFIED BY '$Slavepass45#';
Query OK, 0 rows affected (0,00 sec)

mysql> grant all on *.* to 'remote'@'%' with grant option;
Query OK, 0 rows affected (0,00 sec)

mysqldbexport syntax:

[root@linuxsrv3 ~]# mysqldbexport --server=remote:'$Slavepass45#'@192.168.1.77:3306 --export=both --rpl=master --all --output-file /home/export7.sql --rpl-user=repl:'$Slavepass45#' -vvv --bulk-insert --locking=snapshot
# WARNING: Specified output file already exists. The file will be overwritten.
# Source on 192.168.1.77: ... connected.
# LOCK STRING: FLUSH TABLES WITH READ LOCK
Traceback (most recent call last):
  File "/usr/bin/mysqldbexport", line 354, in <module>
    export_databases(server_values, db_list, output_file, options)
  File "/usr/lib/python2.6/site-packages/mysql/utilities/command/dbexport.py", line 1032, in export_databases
    _export_data(source, server_values, db_list, output_file, options)
  File "/usr/lib/python2.6/site-packages/mysql/utilities/command/dbexport.py", line 466, in _export_data
    _export_table_data(source, table, output_file, options)
  File "/usr/lib/python2.6/site-packages/mysql/utilities/command/dbexport.py", line 581, in _export_table_data
    for data_rows in cur_table.retrieve_rows(retrieval_mode):
  File "/usr/lib/python2.6/site-packages/mysql/utilities/common/table.py", line 850, in retrieve_rows
    rows = cur.fetchall()
  File "/usr/lib/python2.6/site-packages/mysql/connector/cursor.py", line 892, in fetchall
    (rows, eof) = self._connection.get_rows()
  File "/usr/lib/python2.6/site-packages/mysql/connector/connection.py", line 584, in get_rows
    rows = self._protocol.read_text_result(self._socket, count)
  File "/usr/lib/python2.6/site-packages/mysql/connector/protocol.py", line 252, in read_text_result
    packet = sock.recv()
  File "/usr/lib/python2.6/site-packages/mysql/connector/network.py", line 206, in recv_plain
    raise errors.InterfaceError(errno=2013)
mysql.connector.errors.InterfaceError: 2013: Lost connection to MySQL server during query

How to repeat:
All necessary steps provided in description.

Suggested fix:
Ofcourse informative error message but it will be better if in documentation will be a warning section related to this error.
[28 Jul 2014 9:33] MySQL Verification Team
Hello Shahriyar,

Thank you for the report.
I could not repeat this issue with latest WB utilities. Could you please confirm with the latest version and report us if you are still seeing the issue.

mysql>  select @@net_read_timeout;
+--------------------+
| @@net_read_timeout |
+--------------------+
|                 30 |
+--------------------+
1 row in set (0.00 sec)

mysql>

[ushastry@cluster-repo ~]$ mysqldbexport --server=root@localhost --export=both --rpl=master --all --output-file /tmp/test.sql  --rpl-user=repl:'slavepass' -vvv --bulk-insert --locking=snapshot
# WARNING: Specified output file already exists. The file will be overwritten.
# Source on localhost: ... connected.
# LOCK STRING: FLUSH TABLES WITH READ LOCK
# UNLOCK STRING: UNLOCK TABLES
Time: 201.32 sec

[ushastry@cluster-repo ~]$ mysqluc
Launching console ...

Welcome to the MySQL Utilities Client (mysqluc) version 1.4.3
Copyright (c) 2010, 2014 Oracle and/or its affiliates. All rights reserved.
This is a release of dual licensed MySQL Utilities. For the avoidance of
doubt, this particular copy of the software is released
under the version 2 of the GNU General Public License.
MySQL Utilities is brought to you by Oracle.

Type 'help' for a list of commands or press TAB twice for list of utilities.

mysqluc>  mysqldbexport --server=root@localhost --export=both --rpl=master --all --output-file /tmp/test.sql  --rpl-user=repl:'slavepass' -vvv --bulk-insert --locking=snapshot
# WARNING: Specified output file already exists. The file will be overwritten.
# Source on localhost: ... connected.
# LOCK STRING: FLUSH TABLES WITH READ LOCK
# UNLOCK STRING: UNLOCK TABLES
Time: 195.57 sec