Bug #101466 Undocumented exception
Submitted: 5 Nov 2020 3:41 Modified: 5 Nov 2020 10:11
Reporter: A B Email Updates:
Status: Not a Bug Impact on me:
None 
Category:Connector / Python Severity:S3 (Non-critical)
Version:8.0.22 OS:Linux
Assigned to: CPU Architecture:Any

[5 Nov 2020 3:41] A B
Description:
Rollback on a connection can raise _mysql_connector.MySQLInterfaceError.

Tested on Ubuntu 20 and MacOS Catalena.

How to repeat:
import mysql.connector
import _mysql_connector

import config

try:
    cnx = mysql.connector.connect(**config.dbuser)
    input("Shut down database server and press Enter...")
    cnx.rollback()
except mysql.connector.errors.Error:
    print("Caught documented exception")
except _mysql_connector.MySQLInterfaceError:
    print("Caught undocumented exception")
[5 Nov 2020 10:11] MySQL Verification Team
Hello!

Thank you for the report and test case.
Discussed with our Connector/Python lead and confirmed that this is an expected behavior and thus not a bug.

-
[yy@zz:~/work/binaries/MySQLPython]$python3.8 -m venv venv
[yy@zz:~/work/binaries/MySQLPython]$source venv/bin/activate
(venv) [yy@zz:~/work/binaries/MySQLPython]$ pip install mysql-connector-python
Collecting mysql-connector-python
  Downloading mysql_connector_python-8.0.22-cp38-cp38-manylinux1_x86_64.whl (18.0 MB)
     |████████████████████████████████| 18.0 MB 1.5 MB/s
Collecting protobuf>=3.0.0
  Downloading protobuf-3.13.0-cp38-cp38-manylinux1_x86_64.whl (1.3 MB)
     |████████████████████████████████| 1.3 MB 780 kB/s
Requirement already satisfied: setuptools in ./venv/lib/python3.8/site-packages (from protobuf>=3.0.0->mysql-connector-python) (49.2.1)
Collecting six>=1.9
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Installing collected packages: six, protobuf, mysql-connector-python
Successfully installed mysql-connector-python-8.0.22 protobuf-3.13.0 six-1.15.0
WARNING: You are using pip version 20.2.1; however, version 20.2.4 is available.
You should consider upgrading via the '/home/umshastr/work/binaries/MySQLPython/venv/bin/python3.8 -m pip install --upgrade pip' command.
(venv) [yy@zz:~/work/binaries/MySQLPython]$
(venv) [yy@zz:~/work/binaries/MySQLPython]$ python3.8 Bug101466.py
Shut down database server and press Enter...

(venv) [yy@zz:~/work/binaries/MySQLPython]$ cat Bug101466.py
import sys
import mysql.connector
import _mysql_connector
config = {
    'user': 'user1',
    'password': 'user123',
    'host': '127.0.0.1',
    'port': 3333,
}
try:
    cnx = mysql.connector.connect(**config)
    input("Shut down database server and press Enter...")
    cnx.rollback()
except mysql.connector.errors.Error:
    raise
except _mysql_connector.MySQLInterfaceError:
    raise

--
 python3.8 Bug101466.py
Shut down database server and press Enter...

- When server was shutdown before "enter"

(venv) [yy@zz:~/work/binaries/MySQLPython]$ python3.8 Bug101466.py
Shut down database server and press Enter...
Traceback (most recent call last):
  File "Bug101466.py", line 13, in <module>
    cnx.rollback()
  File "/home/umshastr/work/binaries/MySQLPython/venv/lib/python3.8/site-packages/mysql/connector/connection_cext.py", line 403, in rollback
    self._cmysql.rollback()
_mysql_connector.MySQLInterfaceError: Lost connection to MySQL server during query

regards,
Umesh