Description:
There is a missing check for attribute error:
File "/usr/local/sql_func.py", line 856, in db_query
c=cursor.execute(arg_query)
File "/usr/lib/python2.5/site-packages/DBUtils-1.0-py2.5.egg/DBUtils/SteadyDB.py", line 447, in tough_method
result = method(*args, **kwargs) # try to execute
File "/usr/lib/python2.5/site-packages/mysql/connector/cursor.py", line 392, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "/usr/lib/python2.5/site-packages/mysql/connector/connection.py", line 502, in cmd_query
statement))
File "/usr/lib/python2.5/site-packages/mysql/connector/connection.py", line 357, in _send_cmd
return self._socket.recv()
File "/usr/lib/python2.5/site-packages/mysql/connector/network.py", line 183, in recv_plain
values=(self.get_address(), err.errno))
How to repeat:
let a socket error occure.
Suggested fix:
--- mysql-connector-python-1.0.7/python2/mysql/connector/network.py.orig 2012-11-05 10:06:01.000000000 +0100
+++ mysql-connector-python-1.0.7/python2/mysql/connector/network.py 2012-11-05 10:19:48.000000000 +0100
@@ -179,8 +179,13 @@
except socket.timeout, err:
raise errors.InterfaceError(errno=2013)
except socket.error, err:
+ msg = ''
+ try:
+ msg = err.errno
+ except AttributeError:
+ msg = err
raise errors.InterfaceError(errno=2055,
- values=(self.get_address(), err.errno))
+ values=(self.get_address(), msg))
recv = recv_plain
def _split_zipped_payload(self, packet_bunch):